home *** CD-ROM | disk | FTP | other *** search
MacBinary | 1999-09-28 | 67.0 KB | [TEXT/MPS ] |
open in:
MacOS 8.1
|
Win98
|
DOS
browse contents |
view JSON data
|
view as text
This file was processed as: MacBinary
(archive/macBinary).
Confidence | Program | Detection | Match Type | Support
|
---|
66%
| dexvert
| Compact Compressed (Unix) (archive/compact)
| ext
| Supported |
10%
| dexvert
| MacBinary (archive/macBinary)
| fallback
| Supported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| MacBinary II, inited, Tue Sep 28 12:00:00 1999, modified Tue Sep 28 12:00:00 1999, creator 'MPS ', type ASCII, 67812 bytes "FWiXDriver.c" , at 0x10964 604 bytes resource
| default (weak)
| |
99%
| file
| data
| default
| |
74%
| TrID
| Macintosh plain text (MacBinary)
| default
| |
25%
| TrID
| MacBinary 2
| default (weak)
| |
100%
| siegfried
| fmt/1762 MacBinary (II)
| default
| |
100%
| lsar
| MacBinary
| default
|
|
id metadata |
---|
key | value |
---|
macFileType | [TEXT] |
macFileCreator | [MPS ] |
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 0c 46 57 69 58 44 72 | 69 76 65 72 2e 63 00 00 |..FWiXDr|iver.c..|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 4d 50 53 | 20 01 00 00 00 00 00 00 |.TEXTMPS| .......|
|00000050| 00 00 00 00 01 08 e4 00 | 00 02 5c b4 16 96 80 b4 |........|..\.....|
|00000060| 16 96 80 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 50 07 00 00 |........|....P...|
|00000080| 2f 2a 0d 09 46 69 6c 65 | 3a 09 09 46 57 69 58 44 |/*..File|:..FWiXD|
|00000090| 72 69 76 65 72 2e 63 0d | 0d 09 43 6f 6e 74 61 69 |river.c.|..Contai|
|000000a0| 6e 73 3a 09 44 72 69 76 | 65 72 20 73 6f 66 74 77 |ns:.Driv|er softw|
|000000b0| 61 72 65 20 66 6f 72 20 | 46 69 72 65 57 69 72 65 |are for |FireWire|
|000000c0| 20 46 69 6c 65 20 45 78 | 63 68 61 6e 67 65 2e 0d | File Ex|change..|
|000000d0| 0d 09 56 65 72 73 69 6f | 6e 3a 09 31 2e 30 0d 0d |..Versio|n:.1.0..|
|000000e0| 09 57 72 69 74 74 65 6e | 20 62 79 3a 09 4a 61 79 |.Written| by:.Jay|
|000000f0| 20 4c 6c 6f 79 64 0d 0d | 09 43 6f 70 79 72 69 67 | Lloyd..|.Copyrig|
|00000100| 68 74 3a 09 a9 20 31 39 | 39 36 2d 31 39 39 39 20 |ht:.. 19|96-1999 |
|00000110| 62 79 20 41 70 70 6c 65 | 20 43 6f 6d 70 75 74 65 |by Apple| Compute|
|00000120| 72 2c 20 49 6e 63 2e 2c | 20 61 6c 6c 20 72 69 67 |r, Inc.,| all rig|
|00000130| 68 74 73 20 72 65 73 65 | 72 76 65 64 2e 0d 0d 09 |hts rese|rved....|
|00000140| 46 69 6c 65 20 4f 77 6e | 65 72 73 68 69 70 3a 0d |File Own|ership:.|
|00000150| 0d 09 09 44 52 49 3a 09 | 09 09 09 4a 61 79 20 4c |...DRI:.|...Jay L|
|00000160| 6c 6f 79 64 0d 0d 09 09 | 4f 74 68 65 72 20 43 6f |loyd....|Other Co|
|00000170| 6e 74 61 63 74 3a 09 09 | 0d 0d 09 09 54 65 63 68 |ntact:..|....Tech|
|00000180| 6e 6f 6c 6f 67 79 3a 09 | 09 09 46 69 72 65 57 69 |nology:.|..FireWi|
|00000190| 72 65 0d 0d 09 57 72 69 | 74 65 72 73 3a 0d 0d 09 |re...Wri|ters:...|
|000001a0| 09 28 6a 6b 6c 29 09 4a | 61 79 20 4c 6c 6f 79 64 |.(jkl).J|ay Lloyd|
|000001b0| 0d 0d 09 43 68 61 6e 67 | 65 20 48 69 73 74 6f 72 |...Chang|e Histor|
|000001c0| 79 20 28 6d 6f 73 74 20 | 72 65 63 65 6e 74 20 66 |y (most |recent f|
|000001d0| 69 72 73 74 29 3a 0d 0d | 09 20 20 3c 46 57 33 31 |irst):..|. <FW31|
|000001e0| 3e 09 20 20 34 2f 38 2f | 39 39 09 6a 6b 6c 09 09 |>. 4/8/|99.jkl..|
|000001f0| 47 6f 74 20 72 69 64 20 | 6f 66 20 75 6e 75 73 65 |Got rid |of unuse|
|00000200| 64 20 76 61 72 69 61 62 | 6c 65 20 69 6e 20 44 6f |d variab|le in Do|
|00000210| 44 72 69 76 65 72 49 4f | 0d 09 20 20 3c 46 57 33 |DriverIO|.. <FW3|
|00000220| 30 3e 09 20 20 34 2f 38 | 2f 39 39 09 6a 6b 6c 09 |0>. 4/8|/99.jkl.|
|00000230| 09 41 64 64 65 64 20 44 | 6f 44 72 69 76 65 72 49 |.Added D|oDriverI|
|00000240| 4f 20 72 6f 75 74 69 6e | 65 20 73 6f 20 66 77 69 |O routin|e so fwi|
|00000250| 78 20 63 61 6e 20 66 61 | 6b 65 20 62 65 69 6e 67 |x can fa|ke being|
|00000260| 20 61 20 47 44 46 2e 0d | 09 20 20 3c 46 57 32 39 | a GDF..|. <FW29|
|00000270| 3e 09 20 20 37 2f 37 2f | 39 38 09 6a 6b 6c 09 09 |>. 7/7/|98.jkl..|
|00000280| 44 65 61 6c 6c 6f 63 61 | 74 65 20 6e 6f 64 65 27 |Dealloca|te node'|
|00000290| 73 20 64 61 74 61 20 62 | 75 66 66 65 72 20 61 64 |s data b|uffer ad|
|000002a0| 64 72 65 73 73 20 73 70 | 61 63 65 20 77 68 65 6e |dress sp|ace when|
|000002b0| 20 63 6c 6f 73 69 6e 67 | 20 6e 6f 64 65 2e 0d 09 | closing| node...|
|000002c0| 20 20 3c 46 57 32 38 3e | 09 20 31 2f 31 35 2f 39 | <FW28>|. 1/15/9|
|000002d0| 38 09 6a 6b 6c 09 09 55 | 70 64 61 74 65 20 66 6f |8.jkl..U|pdate fo|
|000002e0| 72 20 6e 65 77 20 68 65 | 61 64 65 72 73 2e 0d 09 |r new he|aders...|
|000002f0| 20 20 3c 46 57 32 37 3e | 09 20 35 2f 32 38 2f 39 | <FW27>|. 5/28/9|
|00000300| 37 09 6a 6b 6c 09 09 41 | 64 64 65 64 20 61 20 63 |7.jkl..A|dded a c|
|00000310| 68 65 63 6b 20 66 6f 72 | 20 63 6f 6e 74 72 6f 6c |heck for| control|
|00000320| 20 70 61 63 6b 65 74 20 | 69 6e 64 65 78 20 65 71 | packet |index eq|
|00000330| 75 61 6c 20 74 6f 20 31 | 20 66 6f 72 20 61 20 6e |ual to 1| for a n|
|00000340| 6f 64 65 0d 09 09 09 09 | 09 09 09 09 09 62 65 69 |ode.....|.....bei|
|00000350| 6e 67 20 72 65 73 74 61 | 72 74 65 64 2e 20 43 6c |ng resta|rted. Cl|
|00000360| 65 61 6e 65 64 20 75 70 | 20 73 6f 6d 65 20 6f 66 |eaned up| some of|
|00000370| 20 74 68 65 20 69 6e 55 | 73 65 20 61 6e 64 20 74 | the inU|se and t|
|00000380| 69 6d 69 6e 67 20 63 68 | 65 63 6b 73 0d 09 09 09 |iming ch|ecks....|
|00000390| 09 09 09 09 09 09 61 64 | 64 65 64 20 69 6e 20 6c |......ad|ded in l|
|000003a0| 61 73 74 20 72 65 76 69 | 73 69 6f 6e 20 74 6f 20 |ast revi|sion to |
|000003b0| 69 6e 76 65 73 74 69 67 | 61 74 65 20 35 2b 20 6e |investig|ate 5+ n|
|000003c0| 6f 64 65 20 70 72 6f 62 | 6c 65 6d 2e 0d 09 20 20 |ode prob|lem... |
|000003d0| 3c 46 57 32 36 3e 09 20 | 35 2f 32 37 2f 39 37 09 |<FW26>. |5/27/97.|
|000003e0| 6a 6b 6c 09 09 41 64 64 | 65 64 20 61 20 63 6f 6e |jkl..Add|ed a con|
|000003f0| 74 72 6f 6c 20 70 61 63 | 6b 65 74 20 69 6e 64 65 |trol pac|ket inde|
|00000400| 78 69 6e 67 20 66 75 6e | 63 74 69 6f 6e 20 74 6f |xing fun|ction to|
|00000410| 20 6d 61 6b 65 20 73 75 | 72 65 20 63 6f 6e 74 72 | make su|re contr|
|00000420| 6f 6c 0d 09 09 09 09 09 | 09 09 09 09 70 61 63 6b |ol......|....pack|
|00000430| 65 74 73 20 61 72 65 20 | 68 61 6e 64 6c 65 64 20 |ets are |handled |
|00000440| 6f 6e 6c 79 20 6f 6e 63 | 65 2e 20 43 68 61 6e 67 |only onc|e. Chang|
|00000450| 65 64 20 74 68 65 20 66 | 6c 6f 77 20 63 6f 6e 74 |ed the f|low cont|
|00000460| 72 6f 6c 20 74 69 6d 65 | 72 20 74 6f 0d 09 09 09 |rol time|r to....|
|00000470| 09 09 09 09 09 09 73 65 | 6e 64 20 66 6c 6f 77 20 |......se|nd flow |
|00000480| 63 6f 6e 74 72 6f 6c 20 | 72 65 71 75 65 73 74 73 |control |requests|
|00000490| 20 75 6e 74 69 6c 20 61 | 20 72 65 70 6c 79 20 69 | until a| reply i|
|000004a0| 73 20 72 65 63 65 69 76 | 65 64 2e 20 54 68 69 73 |s receiv|ed. This|
|000004b0| 20 77 6f 75 6c 64 0d 09 | 09 09 09 09 09 09 09 09 | would..|........|
|000004c0| 66 69 78 20 61 20 63 61 | 73 65 20 77 68 65 72 65 |fix a ca|se where|
|000004d0| 20 61 20 66 6c 6f 77 20 | 63 6f 6e 74 72 6f 6c 20 | a flow |control |
|000004e0| 72 65 71 75 65 73 74 20 | 6e 65 76 65 72 20 67 6f |request |never go|
|000004f0| 74 20 61 20 72 65 70 6c | 79 2e 0d 09 09 09 09 09 |t a repl|y.......|
|00000500| 09 09 09 09 41 64 64 65 | 64 20 6d 6f 72 65 20 65 |....Adde|d more e|
|00000510| 72 72 6f 72 20 63 68 65 | 63 6b 69 6e 67 20 61 6e |rror che|cking an|
|00000520| 64 20 69 6e 20 75 73 65 | 20 63 68 65 63 6b 69 6e |d in use| checkin|
|00000530| 67 20 74 6f 20 69 6e 76 | 65 73 74 69 67 61 74 65 |g to inv|estigate|
|00000540| 20 35 2b 0d 09 09 09 09 | 09 09 09 09 09 6e 6f 64 | 5+.....|.....nod|
|00000550| 65 20 70 72 6f 62 6c 65 | 6d 2e 0d 09 20 20 3c 46 |e proble|m... <F|
|00000560| 57 32 35 3e 09 20 35 2f | 31 35 2f 39 37 09 6a 6b |W25>. 5/|15/97.jk|
|00000570| 6c 09 09 41 64 64 65 64 | 20 61 20 63 68 65 63 6b |l..Added| a check|
|00000580| 73 75 6d 20 72 6f 75 74 | 69 6e 65 20 61 72 6f 75 |sum rout|ine arou|
|00000590| 6e 64 20 73 65 6e 64 20 | 64 61 74 61 20 61 6e 64 |nd send |data and|
|000005a0| 20 64 61 74 61 20 64 6f | 6e 65 2e 20 41 64 64 65 | data do|ne. Adde|
|000005b0| 64 0d 09 09 09 09 09 09 | 09 09 09 61 6e 20 69 6e |d.......|...an in|
|000005c0| 64 65 78 20 74 6f 20 74 | 68 65 20 66 6c 6f 77 20 |dex to t|he flow |
|000005d0| 63 6f 6e 74 72 6f 6c 20 | 6d 65 73 73 61 67 65 73 |control |messages|
|000005e0| 20 74 6f 20 6f 6e 6c 79 | 20 68 61 6e 64 6c 65 20 | to only| handle |
|000005f0| 61 20 72 65 70 6c 79 0d | 09 09 09 09 09 09 09 09 |a reply.|........|
|00000600| 09 66 72 6f 6d 20 74 68 | 65 20 6c 61 74 65 73 74 |.from th|e latest|
|00000610| 20 72 65 71 75 65 73 74 | 2e 20 50 75 74 20 61 20 | request|. Put a |
|00000620| 63 68 65 63 6b 20 61 72 | 6f 75 6e 64 20 73 65 6e |check ar|ound sen|
|00000630| 64 70 61 63 6b 65 74 20 | 74 6f 20 6d 61 6b 65 0d |dpacket |to make.|
|00000640| 09 09 09 09 09 09 09 09 | 09 73 75 72 65 20 69 74 |........|.sure it|
|00000650| 20 69 73 20 6e 6f 74 20 | 72 65 65 6e 74 65 72 65 | is not |reentere|
|00000660| 64 2e 0d 09 20 20 3c 46 | 57 32 34 3e 09 20 32 2f |d... <F|W24>. 2/|
|00000670| 32 37 2f 39 37 09 6a 6b | 6c 09 09 4d 6f 64 69 66 |27/97.jk|l..Modif|
|00000680| 69 65 64 20 74 68 65 20 | 57 72 69 74 65 44 61 74 |ied the |WriteDat|
|00000690| 61 43 6f 6d 70 6c 65 74 | 65 20 72 6f 75 74 69 6e |aComplet|e routin|
|000006a0| 65 20 74 6f 20 74 75 72 | 6e 20 6f 66 66 20 66 6c |e to tur|n off fl|
|000006b0| 6f 77 20 63 6f 6e 74 72 | 6f 6c 2e 0d 09 09 09 09 |ow contr|ol......|
|000006c0| 09 09 09 09 09 54 68 69 | 73 20 77 69 6c 6c 20 63 |.....Thi|s will c|
|000006d0| 61 75 73 65 20 61 20 66 | 6c 6f 77 20 63 6f 6e 74 |ause a f|low cont|
|000006e0| 72 6f 6c 20 72 65 71 75 | 65 73 74 20 61 6e 64 20 |rol requ|est and |
|000006f0| 72 65 70 6c 79 20 74 6f | 20 62 65 20 73 65 6e 74 |reply to| be sent|
|00000700| 20 74 6f 0d 09 09 09 09 | 09 09 09 09 09 65 6e 73 | to.....|.....ens|
|00000710| 75 72 65 20 74 68 65 20 | 72 65 63 65 69 76 65 20 |ure the |receive |
|00000720| 64 61 74 61 20 62 75 66 | 66 65 72 20 64 6f 65 73 |data buf|fer does|
|00000730| 20 6e 6f 74 20 67 65 74 | 20 6f 76 65 72 77 72 69 | not get| overwri|
|00000740| 74 74 65 6e 20 77 69 74 | 68 0d 09 09 09 09 09 09 |tten wit|h.......|
|00000750| 09 09 09 6d 6f 72 65 20 | 64 61 74 61 20 62 65 66 |...more |data bef|
|00000760| 6f 72 65 20 74 68 65 20 | 72 65 63 65 69 76 65 72 |ore the |receiver|
|00000770| 20 72 65 61 64 73 20 74 | 68 65 20 65 78 69 73 74 | reads t|he exist|
|00000780| 69 6e 67 20 64 61 74 61 | 20 6f 75 74 20 6f 66 20 |ing data| out of |
|00000790| 74 68 65 0d 09 09 09 09 | 09 09 09 09 09 62 75 66 |the.....|.....buf|
|000007a0| 66 65 72 2e 20 52 65 64 | 75 63 65 64 20 66 6c 6f |fer. Red|uced flo|
|000007b0| 77 20 63 6f 6e 74 72 6f | 6c 20 72 65 74 72 79 20 |w contro|l retry |
|000007c0| 74 69 6d 65 20 66 72 6f | 6d 20 31 30 30 20 74 6f |time fro|m 100 to|
|000007d0| 20 31 30 20 6d 73 20 74 | 6f 0d 09 09 09 09 09 09 | 10 ms t|o.......|
|000007e0| 09 09 09 72 65 64 75 63 | 65 20 74 72 61 6e 73 66 |...reduc|e transf|
|000007f0| 65 72 20 73 74 61 6c 6c | 73 2e 0d 09 20 20 3c 46 |er stall|s... <F|
|00000800| 57 32 33 3e 09 20 32 2f | 32 31 2f 39 37 09 45 53 |W23>. 2/|21/97.ES|
|00000810| 09 09 41 64 64 65 64 20 | 69 6e 20 75 73 65 20 66 |..Added |in use f|
|00000820| 6c 61 67 73 20 66 6f 72 | 20 61 6c 6c 20 46 57 43 |lags for| all FWC|
|00000830| 6f 6d 6d 61 6e 64 4f 62 | 6a 65 63 74 73 2e 20 43 |ommandOb|jects. C|
|00000840| 68 61 6e 67 65 64 20 46 | 57 58 43 6c 6f 73 65 20 |hanged F|WXClose |
|00000850| 74 6f 0d 09 09 09 09 09 | 09 09 09 09 77 61 69 74 |to......|....wait|
|00000860| 20 66 6f 72 20 61 6c 6c | 20 6f 66 20 74 68 65 73 | for all| of thes|
|00000870| 65 20 66 6c 61 67 73 20 | 74 6f 20 63 6c 65 61 72 |e flags |to clear|
|00000880| 20 62 65 66 6f 72 65 20 | 64 6f 69 6e 67 20 61 6e | before |doing an|
|00000890| 79 20 63 6c 6f 73 69 6e | 67 0d 09 09 09 09 09 09 |y closin|g.......|
|000008a0| 09 09 09 61 63 74 69 76 | 69 74 79 2e 20 52 65 6d |...activ|ity. Rem|
|000008b0| 6f 76 65 64 20 77 61 69 | 74 20 6f 6e 20 77 72 69 |oved wai|t on wri|
|000008c0| 74 65 50 65 6e 64 69 6e | 67 2e 20 54 68 69 73 20 |tePendin|g. This |
|000008d0| 66 69 78 65 73 20 61 20 | 68 61 6e 67 20 6f 6e 0d |fixes a |hang on.|
|000008e0| 09 09 09 09 09 09 09 09 | 09 63 6c 6f 73 69 6e 67 |........|.closing|
|000008f0| 20 62 75 67 2e 0d 09 20 | 20 3c 46 57 32 32 3e 09 | bug... | <FW22>.|
|00000900| 20 32 2f 32 31 2f 39 37 | 09 45 41 09 09 41 64 64 | 2/21/97|.EA..Add|
|00000910| 65 64 20 6f 70 74 69 6f | 6e 20 74 6f 20 73 65 6e |ed optio|n to sen|
|00000920| 64 20 64 69 61 67 6e 6f | 73 74 69 63 20 6d 65 73 |d diagno|stic mes|
|00000930| 73 61 67 65 73 20 74 6f | 20 46 69 72 65 42 75 67 |sages to| FireBug|
|00000940| 2e 0d 09 20 20 3c 46 57 | 32 31 3e 09 20 32 2f 32 |... <FW|21>. 2/2|
|00000950| 31 2f 39 37 09 6a 6b 6c | 09 09 4d 6f 64 69 66 69 |1/97.jkl|..Modifi|
|00000960| 65 64 20 64 61 74 61 20 | 74 72 61 6e 73 6d 69 73 |ed data |transmis|
|00000970| 73 69 6f 6e 73 20 74 6f | 20 62 65 20 73 65 6e 74 |sions to| be sent|
|00000980| 20 74 6f 20 6e 6f 6e 2d | 6e 6f 74 69 66 79 20 61 | to non-|notify a|
|00000990| 64 64 72 65 73 73 0d 09 | 09 09 09 09 09 09 09 09 |ddress..|........|
|000009a0| 73 70 61 63 65 2e 0d 09 | 20 20 3c 46 57 32 30 3e |space...| <FW20>|
|000009b0| 09 20 32 2f 32 30 2f 39 | 37 09 45 53 09 09 43 68 |. 2/20/9|7.ES..Ch|
|000009c0| 61 6e 67 65 64 20 46 57 | 43 6c 69 65 6e 74 41 73 |anged FW|ClientAs|
|000009d0| 79 6e 63 68 52 65 71 75 | 65 73 74 50 61 72 61 6d |ynchRequ|estParam|
|000009e0| 73 20 62 75 66 66 65 72 | 20 66 69 65 6c 64 20 74 |s buffer| field t|
|000009f0| 6f 0d 09 09 09 09 09 09 | 09 09 09 72 65 63 65 69 |o.......|...recei|
|00000a00| 76 65 42 75 66 66 65 72 | 2e 0d 09 20 20 3c 46 57 |veBuffer|... <FW|
|00000a10| 31 39 3e 09 20 32 2f 31 | 39 2f 39 37 09 6a 6b 6c |19>. 2/1|9/97.jkl|
|00000a20| 09 09 41 64 64 65 64 20 | 61 20 66 6c 6f 77 20 63 |..Added |a flow c|
|00000a30| 6f 6e 74 72 6f 6c 20 73 | 65 6e 64 20 70 65 6e 64 |ontrol s|end pend|
|00000a40| 69 6e 67 20 66 6c 61 67 | 20 74 6f 20 6d 61 6b 65 |ing flag| to make|
|00000a50| 20 73 75 72 65 20 74 77 | 6f 20 6d 65 73 73 61 67 | sure tw|o messag|
|00000a60| 65 73 0d 09 09 09 09 09 | 09 09 09 09 64 6f 20 6e |es......|....do n|
|00000a70| 6f 74 20 67 65 74 20 73 | 65 6e 74 20 61 74 20 6f |ot get s|ent at o|
|00000a80| 6e 65 20 74 69 6d 65 2e | 20 4d 6f 76 65 64 20 61 |ne time.| Moved a|
|00000a90| 76 61 69 6c 61 62 6c 65 | 20 62 75 66 66 65 72 20 |vailable| buffer |
|00000aa0| 63 6f 75 6e 74 73 20 66 | 72 6f 6d 0d 09 09 09 09 |counts f|rom.....|
|00000ab0| 09 09 09 09 09 77 72 69 | 74 65 20 63 6f 6d 70 6c |.....wri|te compl|
|00000ac0| 65 74 69 6f 6e 20 72 6f | 75 74 69 6e 65 20 74 6f |etion ro|utine to|
|00000ad0| 20 77 72 69 74 65 20 72 | 6f 75 74 69 6e 65 2e 0d | write r|outine..|
|00000ae0| 09 20 20 3c 46 57 31 38 | 3e 09 20 32 2f 31 34 2f |. <FW18|>. 2/14/|
|00000af0| 39 37 09 6a 6b 6c 09 09 | 43 68 61 6e 67 65 64 20 |97.jkl..|Changed |
|00000b00| 74 68 65 20 66 6c 6f 77 | 20 63 6f 6e 74 72 6f 6c |the flow| control|
|00000b10| 20 6d 65 63 68 61 6e 69 | 73 6d 20 73 6f 20 74 68 | mechani|sm so th|
|00000b20| 65 20 73 65 6e 64 65 72 | 20 68 61 73 20 74 6f 20 |e sender| has to |
|00000b30| 72 65 71 75 65 73 74 0d | 09 09 09 09 09 09 09 09 |request.|........|
|00000b40| 09 66 72 6f 6d 20 74 68 | 65 20 72 65 63 65 69 76 |.from th|e receiv|
|00000b50| 65 72 20 68 6f 77 20 6d | 61 6e 79 20 70 61 63 6b |er how m|any pack|
|00000b60| 65 74 73 20 68 65 20 63 | 61 6e 20 73 65 6e 64 2e |ets he c|an send.|
|00000b70| 0d 09 20 20 3c 46 57 31 | 37 3e 09 20 32 2f 31 33 |.. <FW1|7>. 2/13|
|00000b80| 2f 39 37 09 6a 6b 6c 09 | 09 41 64 64 65 64 20 46 |/97.jkl.|.Added F|
|00000b90| 6c 6f 77 43 6f 6e 74 72 | 6f 6c 20 70 61 63 6b 65 |lowContr|ol packe|
|00000ba0| 74 20 63 6f 75 6e 74 65 | 72 20 74 6f 20 6d 61 6b |t counte|r to mak|
|00000bb0| 65 20 73 75 72 65 20 66 | 6c 6f 77 20 63 6f 6e 74 |e sure f|low cont|
|00000bc0| 72 6f 6c 20 69 73 0d 09 | 09 09 09 09 09 09 09 09 |rol is..|........|
|00000bd0| 73 74 61 72 74 65 64 20 | 70 72 6f 70 65 72 6c 79 |started |properly|
|00000be0| 2e 0d 09 20 20 3c 46 57 | 31 36 3e 09 20 32 2f 31 |... <FW|16>. 2/1|
|00000bf0| 33 2f 39 37 09 6a 6b 6c | 09 09 43 68 61 6e 67 65 |3/97.jkl|..Change|
|00000c00| 64 20 66 6c 6f 77 20 63 | 6f 6e 74 72 6f 6c 20 74 |d flow c|ontrol t|
|00000c10| 6f 20 6a 75 73 74 20 6b | 65 65 70 20 75 70 20 77 |o just k|eep up w|
|00000c20| 69 74 68 20 6e 75 6d 62 | 65 72 20 6f 66 20 64 61 |ith numb|er of da|
|00000c30| 74 61 20 70 61 63 6b 65 | 74 73 0d 09 09 09 09 09 |ta packe|ts......|
|00000c40| 09 09 09 09 61 76 61 69 | 6c 61 62 6c 65 20 61 6e |....avai|lable an|
|00000c50| 64 20 73 65 6e 74 2e 20 | 54 68 65 20 66 6c 6f 77 |d sent. |The flow|
|00000c60| 20 63 6f 6e 74 72 6f 6c | 20 6d 65 73 73 61 67 65 | control| message|
|00000c70| 20 69 73 20 6f 6e 6c 79 | 20 73 65 6e 74 20 77 68 | is only| sent wh|
|00000c80| 65 6e 0d 09 09 09 09 09 | 09 09 09 09 61 6c 6c 20 |en......|....all |
|00000c90| 6f 66 20 74 68 65 20 72 | 65 61 64 20 70 61 63 6b |of the r|ead pack|
|00000ca0| 65 74 73 20 68 61 76 65 | 20 62 65 65 6e 20 72 65 |ets have| been re|
|00000cb0| 63 65 69 76 65 64 20 61 | 6e 64 20 61 72 65 20 61 |ceived a|nd are a|
|00000cc0| 76 61 69 6c 61 62 6c 65 | 2c 0d 09 09 09 09 09 09 |vailable|,.......|
|00000cd0| 09 09 09 74 68 75 73 20 | 74 68 65 20 73 65 6e 64 |...thus |the send|
|00000ce0| 65 72 20 77 69 6c 6c 20 | 73 74 61 6c 6c 20 61 66 |er will |stall af|
|00000cf0| 74 65 72 20 65 61 63 68 | 20 6e 75 6d 62 65 72 20 |ter each| number |
|00000d00| 6f 66 20 73 65 6e 64 73 | 2e 20 43 68 61 6e 67 65 |of sends|. Change|
|00000d10| 64 0d 09 09 09 09 09 09 | 09 09 09 77 72 69 74 65 |d.......|...write|
|00000d20| 20 6e 6f 74 69 66 79 20 | 72 6f 75 74 69 6e 65 20 | notify |routine |
|00000d30| 74 6f 20 63 6f 6d 70 6c | 65 74 65 20 72 65 61 64 |to compl|ete read|
|00000d40| 20 64 61 74 61 20 74 72 | 61 6e 73 61 63 74 69 6f | data tr|ansactio|
|00000d50| 6e 20 77 68 65 6e 0d 09 | 09 09 09 09 09 09 09 09 |n when..|........|
|00000d60| 72 65 71 75 65 73 74 65 | 64 20 64 61 74 61 20 69 |requeste|d data i|
|00000d70| 73 20 65 71 75 61 6c 20 | 74 6f 20 72 65 63 65 69 |s equal |to recei|
|00000d80| 76 65 64 20 64 61 74 61 | 2e 0d 09 20 20 3c 46 57 |ved data|... <FW|
|00000d90| 31 35 3e 09 20 32 2f 31 | 31 2f 39 37 09 45 53 09 |15>. 2/1|1/97.ES.|
|00000da0| 09 41 64 64 65 64 20 63 | 6c 6f 73 65 64 20 62 6f |.Added c|losed bo|
|00000db0| 6f 6c 65 61 6e 20 74 6f | 20 46 57 58 4e 6f 64 65 |olean to| FWXNode|
|00000dc0| 44 61 74 61 20 72 65 63 | 6f 72 64 2e 20 41 64 64 |Data rec|ord. Add|
|00000dd0| 65 64 20 63 68 65 63 6b | 73 20 66 6f 72 0d 09 09 |ed check|s for...|
|00000de0| 09 09 09 09 09 09 09 6e | 6f 64 65 20 62 65 69 6e |.......n|ode bein|
|00000df0| 67 20 63 6c 6f 73 65 64 | 20 74 6f 20 70 72 65 76 |g closed| to prev|
|00000e00| 65 6e 74 20 61 6e 79 20 | 77 72 69 74 65 73 20 67 |ent any |writes g|
|00000e10| 6f 69 6e 67 20 6f 75 74 | 20 6f 72 20 62 65 69 6e |oing out| or bein|
|00000e20| 67 0d 09 09 09 09 09 09 | 09 09 09 70 72 6f 63 65 |g.......|...proce|
|00000e30| 73 73 65 64 20 77 68 65 | 6e 20 77 65 27 72 65 20 |ssed whe|n we're |
|00000e40| 63 6c 6f 73 69 6e 67 20 | 61 20 6e 6f 64 65 20 63 |closing |a node c|
|00000e50| 6f 6e 6e 65 63 74 69 6f | 6e 2e 20 43 68 61 6e 67 |onnectio|n. Chang|
|00000e60| 65 64 20 77 72 69 74 65 | 0d 09 09 09 09 09 09 09 |ed write|........|
|00000e70| 09 09 71 75 65 75 65 20 | 64 65 61 6c 6c 6f 63 61 |..queue |dealloca|
|00000e80| 74 69 6f 6e 20 74 6f 20 | 77 61 69 74 20 75 6e 74 |tion to |wait unt|
|00000e90| 69 6c 20 6e 6f 20 6d 6f | 72 65 20 77 72 69 74 65 |il no mo|re write|
|00000ea0| 73 20 61 72 65 20 70 65 | 6e 64 69 6e 67 0d 09 09 |s are pe|nding...|
|00000eb0| 09 09 09 09 09 09 09 62 | 65 66 6f 72 65 20 64 65 |.......b|efore de|
|00000ec0| 61 6c 6c 6f 63 61 74 69 | 6e 67 20 71 75 65 75 65 |allocati|ng queue|
|00000ed0| 2e 0d 09 20 20 3c 46 57 | 31 34 3e 09 20 32 2f 31 |... <FW|14>. 2/1|
|00000ee0| 31 2f 39 37 09 6a 6b 6c | 09 09 41 64 64 65 64 20 |1/97.jkl|..Added |
|00000ef0| 73 75 70 70 6f 72 74 20 | 66 6f 72 20 72 65 61 64 |support |for read|
|00000f00| 20 63 6f 6e 74 72 6f 6c | 20 61 6e 64 20 64 61 74 | control| and dat|
|00000f10| 61 20 71 75 65 75 65 73 | 2e 20 43 68 61 6e 67 65 |a queues|. Change|
|00000f20| 64 20 66 6c 6f 77 0d 09 | 09 09 09 09 09 09 09 09 |d flow..|........|
|00000f30| 63 6f 6e 74 72 6f 6c 20 | 74 6f 20 61 20 79 6f 75 |control |to a you|
|00000f40| 20 63 61 6e 20 73 65 6e | 64 20 6d 65 20 74 68 69 | can sen|d me thi|
|00000f50| 73 20 6d 75 63 68 20 6d | 65 63 68 61 6e 69 73 6d |s much m|echanism|
|00000f60| 2e 20 4d 6f 76 65 64 0d | 09 09 09 09 09 09 09 09 |. Moved.|........|
|00000f70| 09 46 57 58 43 6f 6d 6d | 61 6e 64 43 6f 6d 70 6c |.FWXComm|andCompl|
|00000f80| 65 74 65 20 72 6f 75 74 | 69 6e 65 20 74 6f 20 74 |ete rout|ine to t|
|00000f90| 68 65 20 66 61 6d 69 6c | 79 2e 0d 09 20 20 3c 46 |he famil|y... <F|
|00000fa0| 57 31 33 3e 09 20 20 32 | 2f 32 2f 39 37 09 6a 6b |W13>. 2|/2/97.jk|
|00000fb0| 6c 09 09 4d 6f 64 69 66 | 69 65 64 20 66 6c 6f 77 |l..Modif|ied flow|
|00000fc0| 20 63 6f 6e 74 72 6f 6c | 20 74 69 6d 65 20 64 65 | control| time de|
|00000fd0| 6c 61 79 20 74 6f 20 63 | 68 65 63 6b 20 6d 6f 72 |lay to c|heck mor|
|00000fe0| 65 20 6f 66 74 65 6e 20 | 69 66 20 69 74 20 69 73 |e often |if it is|
|00000ff0| 20 6f 6b 0d 09 09 09 09 | 09 09 09 09 09 74 6f 20 | ok.....|.....to |
|00001000| 77 72 69 74 65 20 61 6e | 64 20 77 72 69 74 65 20 |write an|d write |
|00001010| 72 6f 75 74 69 6e 65 20 | 74 6f 20 68 61 6e 64 6c |routine |to handl|
|00001020| 65 20 77 72 69 74 69 6e | 67 20 62 75 66 66 65 72 |e writin|g buffer|
|00001030| 73 20 6c 61 72 67 65 72 | 20 74 68 61 6e 0d 09 09 |s larger| than...|
|00001040| 09 09 09 09 09 09 09 74 | 68 65 20 61 6c 6c 6f 63 |.......t|he alloc|
|00001050| 61 74 65 64 20 66 69 72 | 65 77 69 72 65 20 62 75 |ated fir|ewire bu|
|00001060| 66 66 65 72 20 73 69 7a | 65 2e 0d 09 20 20 3c 46 |ffer siz|e... <F|
|00001070| 57 31 32 3e 09 20 31 2f | 32 37 2f 39 37 09 45 53 |W12>. 1/|27/97.ES|
|00001080| 09 09 43 68 61 6e 67 65 | 64 20 46 57 58 57 72 69 |..Change|d FWXWri|
|00001090| 74 65 20 74 6f 20 6d 61 | 6b 65 20 73 75 72 65 20 |te to ma|ke sure |
|000010a0| 74 68 65 72 65 20 69 73 | 20 73 74 69 6c 6c 20 61 |there is| still a|
|000010b0| 6e 20 69 74 65 6d 20 6f | 6e 20 74 68 65 0d 09 09 |n item o|n the...|
|000010c0| 09 09 09 09 09 09 09 77 | 72 69 74 65 20 71 75 65 |.......w|rite que|
|000010d0| 75 65 20 62 65 66 6f 72 | 65 20 70 72 6f 63 65 73 |ue befor|e proces|
|000010e0| 73 69 6e 67 20 74 68 65 | 20 68 65 61 64 20 6f 66 |sing the| head of|
|000010f0| 20 74 68 65 20 71 75 65 | 75 65 20 28 61 20 72 61 | the que|ue (a ra|
|00001100| 63 65 0d 09 09 09 09 09 | 09 09 09 09 63 6f 6e 64 |ce......|....cond|
|00001110| 69 74 69 6f 6e 20 77 61 | 73 20 68 61 70 70 65 6e |ition wa|s happen|
|00001120| 69 6e 67 20 68 65 72 65 | 29 2e 20 43 68 61 6e 67 |ing here|). Chang|
|00001130| 65 64 20 46 57 58 43 6c | 6f 73 65 4e 6f 64 65 20 |ed FWXCl|oseNode |
|00001140| 74 6f 20 63 68 65 63 6b | 20 69 66 0d 09 09 09 09 |to check| if.....|
|00001150| 09 09 09 09 09 74 68 65 | 20 72 65 61 64 20 61 6e |.....the| read an|
|00001160| 64 20 77 72 69 74 65 20 | 71 75 65 75 65 73 20 77 |d write |queues w|
|00001170| 65 72 65 20 6e 6f 6e 2d | 6e 69 6c 20 62 65 66 6f |ere non-|nil befo|
|00001180| 72 65 20 64 65 61 6c 6c | 6f 63 61 74 69 6e 67 2e |re deall|ocating.|
|00001190| 0d 09 20 20 3c 46 57 31 | 31 3e 09 20 31 2f 31 36 |.. <FW1|1>. 1/16|
|000011a0| 2f 39 37 09 45 53 09 09 | 43 68 61 6e 67 65 64 20 |/97.ES..|Changed |
|000011b0| 46 57 58 43 72 65 61 74 | 65 50 44 72 69 76 65 72 |FWXCreat|ePDriver|
|000011c0| 55 6e 69 74 44 69 72 65 | 63 74 6f 72 79 20 74 6f |UnitDire|ctory to|
|000011d0| 20 73 65 74 20 43 53 52 | 52 4f 4d 45 6e 74 72 79 | set CSR|ROMEntry|
|000011e0| 49 44 27 73 20 74 6f 0d | 09 09 09 09 09 09 09 09 |ID's to.|........|
|000011f0| 09 69 6e 76 61 6c 69 64 | 20 62 65 66 6f 72 65 20 |.invalid| before |
|00001200| 75 73 69 6e 67 20 74 68 | 65 6d 2e 20 41 6c 73 6f |using th|em. Also|
|00001210| 2c 20 61 64 64 65 64 20 | 63 6f 64 65 20 74 6f 20 |, added |code to |
|00001220| 64 65 61 6c 6c 6f 63 61 | 74 65 20 65 6e 74 72 79 |dealloca|te entry|
|00001230| 0d 09 09 09 09 09 09 09 | 09 09 49 44 27 73 2e 0d |........|..ID's..|
|00001240| 09 20 20 3c 46 57 31 30 | 3e 09 20 31 2f 31 36 2f |. <FW10|>. 1/16/|
|00001250| 39 37 09 6a 6b 6c 09 09 | 43 6c 65 61 6e 65 64 20 |97.jkl..|Cleaned |
|00001260| 75 70 20 72 65 61 64 2f | 77 72 69 74 65 20 62 75 |up read/|write bu|
|00001270| 66 66 65 72 73 20 6f 6e | 20 63 6c 6f 73 65 2e 0d |ffers on| close..|
|00001280| 09 20 20 20 3c 46 57 39 | 3e 09 20 20 31 2f 38 2f |. <FW9|>. 1/8/|
|00001290| 39 37 09 45 53 09 09 43 | 68 61 6e 67 65 64 20 74 |97.ES..C|hanged t|
|000012a0| 6f 20 61 20 46 69 72 65 | 57 69 72 65 20 70 72 6f |o a Fire|Wire pro|
|000012b0| 74 6f 63 6f 6c 20 64 72 | 69 76 65 72 2e 20 52 65 |tocol dr|iver. Re|
|000012c0| 6d 6f 76 65 64 20 66 69 | 78 65 64 20 46 69 72 65 |moved fi|xed Fire|
|000012d0| 57 69 72 65 0d 09 09 09 | 09 09 09 09 09 09 61 64 |Wire....|......ad|
|000012e0| 64 72 65 73 73 20 61 6c | 6c 6f 63 61 74 69 6f 6e |dress al|location|
|000012f0| 2e 0d 09 20 20 20 3c 46 | 57 38 3e 09 31 32 2f 32 |... <F|W8>.12/2|
|00001300| 37 2f 39 36 09 45 53 09 | 09 43 68 61 6e 67 65 64 |7/96.ES.|.Changed|
|00001310| 20 61 20 62 75 6e 63 68 | 20 6f 66 20 22 46 57 44 | a bunch| of "FWD|
|00001320| 72 69 76 65 72 22 73 20 | 74 6f 20 22 46 57 43 6c |river"s |to "FWCl|
|00001330| 69 65 6e 74 22 73 2e 0d | 09 20 20 20 3c 46 57 37 |ient"s..|. <FW7|
|00001340| 3e 09 31 32 2f 31 36 2f | 39 36 09 45 53 09 09 43 |>.12/16/|96.ES..C|
|00001350| 68 61 6e 67 65 64 20 74 | 6f 20 77 6f 72 6b 20 77 |hanged t|o work w|
|00001360| 69 74 68 20 6e 65 77 20 | 72 65 61 64 2f 77 72 69 |ith new |read/wri|
|00001370| 74 65 2f 6c 6f 63 6b 20 | 72 65 71 75 65 73 74 2f |te/lock |request/|
|00001380| 63 6f 6d 70 6c 65 74 65 | 0d 09 09 09 09 09 09 09 |complete|........|
|00001390| 09 09 70 72 6f 63 65 73 | 73 69 6e 67 20 6d 65 63 |..proces|sing mec|
|000013a0| 68 61 6e 69 73 6d 2e 0d | 09 20 20 20 3c 46 57 36 |hanism..|. <FW6|
|000013b0| 3e 09 20 31 32 2f 33 2f | 39 36 09 45 53 09 09 41 |>. 12/3/|96.ES..A|
|000013c0| 64 64 65 64 20 6b 46 57 | 46 69 78 65 64 41 64 64 |dded kFW|FixedAdd|
|000013d0| 72 65 73 73 20 66 6c 61 | 67 20 74 6f 20 46 57 41 |ress fla|g to FWA|
|000013e0| 6c 6c 6f 63 61 74 65 41 | 64 64 72 65 73 73 53 70 |llocateA|ddressSp|
|000013f0| 61 63 65 2e 0d 09 20 20 | 20 3c 46 57 35 3e 09 31 |ace... | <FW5>.1|
|00001400| 31 2f 31 33 2f 39 36 09 | 6a 6b 6c 09 09 4d 6f 76 |1/13/96.|jkl..Mov|
|00001410| 65 64 20 66 72 6f 6d 20 | 44 6f 44 72 69 76 65 72 |ed from |DoDriver|
|00001420| 49 4f 20 69 6e 74 65 72 | 66 61 63 65 20 62 61 63 |IO inter|face bac|
|00001430| 6b 20 74 6f 20 43 61 6c | 6c 44 72 69 76 65 72 2e |k to Cal|lDriver.|
|00001440| 20 41 64 64 65 64 0d 09 | 09 09 09 09 09 09 09 09 | Added..|........|
|00001450| 6d 75 6c 74 69 70 6c 65 | 20 6d 61 63 68 69 6e 65 |multiple| machine|
|00001460| 20 73 75 70 70 6f 72 74 | 2e 20 41 64 64 65 64 20 | support|. Added |
|00001470| 70 61 63 6b 65 74 20 72 | 65 63 65 69 76 65 20 62 |packet r|eceive b|
|00001480| 75 66 66 65 72 69 6e 67 | 2e 0d 09 20 20 20 3c 46 |uffering|... <F|
|00001490| 57 34 3e 09 20 31 30 2f | 33 31 2f 39 36 09 6a 6b |W4>. 10/|31/96.jk|
|000014a0| 6c 09 09 41 64 64 65 64 | 20 66 6c 6f 77 20 63 6f |l..Added| flow co|
|000014b0| 6e 74 72 6f 6c 20 63 6f | 6e 73 74 61 6e 74 73 2e |ntrol co|nstants.|
|000014c0| 0d 09 20 20 20 3c 46 57 | 33 3e 09 20 31 30 2f 31 |.. <FW|3>. 10/1|
|000014d0| 33 2f 39 36 09 6a 6b 6c | 09 09 41 64 64 65 64 20 |3/96.jkl|..Added |
|000014e0| 61 20 62 61 73 69 63 20 | 66 6c 6f 77 20 63 6f 6e |a basic |flow con|
|000014f0| 74 72 6f 6c 20 63 61 70 | 61 62 69 6c 69 74 79 20 |trol cap|ability |
|00001500| 74 6f 20 74 75 72 6e 20 | 6f 66 66 20 74 72 61 6e |to turn |off tran|
|00001510| 73 6d 69 73 73 69 6f 6e | 0d 09 20 20 20 09 09 09 |smission|.. ...|
|00001520| 09 09 09 09 09 77 68 65 | 6e 20 74 68 65 20 6e 75 |.....whe|n the nu|
|00001530| 6d 62 65 72 20 6f 66 20 | 72 65 63 65 69 76 65 64 |mber of |received|
|00001540| 20 62 75 66 66 65 72 73 | 20 69 73 20 6c 6f 77 2e | buffers| is low.|
|00001550| 20 41 6c 6c 20 71 75 65 | 75 65 20 72 6f 75 74 69 | All que|ue routi|
|00001560| 6e 65 73 0d 09 09 09 09 | 09 09 09 09 09 61 72 65 |nes.....|.....are|
|00001570| 20 6e 6f 77 20 74 68 65 | 20 64 73 6c 20 71 75 65 | now the| dsl que|
|00001580| 75 65 20 72 6f 75 74 69 | 6e 65 73 2e 20 54 68 65 |ue routi|nes. The|
|00001590| 20 69 6f 4d 69 73 63 20 | 66 69 65 6c 64 20 69 6e | ioMisc |field in|
|000015a0| 20 61 20 70 61 72 61 6d | 65 74 65 72 0d 09 09 09 | a param|eter....|
|000015b0| 09 09 09 09 09 09 62 6c | 6f 63 6b 20 69 73 20 6e |......bl|ock is n|
|000015c0| 6f 77 20 75 73 65 64 20 | 74 6f 20 69 64 65 6e 74 |ow used |to ident|
|000015d0| 69 66 79 20 74 68 65 20 | 70 61 63 6b 65 74 20 74 |ify the |packet t|
|000015e0| 79 70 65 2e 20 46 6f 72 | 20 63 6f 6e 74 72 6f 6c |ype. For| control|
|000015f0| 0d 09 09 09 09 09 09 09 | 09 09 70 61 63 6b 65 74 |........|..packet|
|00001600| 73 2c 20 74 68 65 20 70 | 61 63 6b 65 74 20 74 79 |s, the p|acket ty|
|00001610| 70 65 20 69 73 20 73 74 | 69 6c 6c 20 61 6c 73 6f |pe is st|ill also|
|00001620| 20 69 6e 20 74 68 65 20 | 66 69 72 73 74 20 6c 6f | in the |first lo|
|00001630| 6e 67 20 77 6f 72 64 0d | 09 09 09 09 09 09 09 09 |ng word.|........|
|00001640| 09 6f 66 20 74 68 65 20 | 62 75 66 66 65 72 2e 20 |.of the |buffer. |
|00001650| 41 20 73 65 6e 64 70 61 | 63 6b 65 74 20 72 6f 75 |A sendpa|cket rou|
|00001660| 74 69 6e 65 20 69 73 20 | 6e 6f 77 20 63 61 6c 6c |tine is |now call|
|00001670| 65 64 20 62 79 20 74 68 | 65 20 77 72 69 74 65 0d |ed by th|e write.|
|00001680| 09 09 09 09 09 09 09 09 | 09 68 61 6e 64 6c 65 72 |........|.handler|
|00001690| 20 61 6e 64 20 74 68 65 | 20 77 72 69 74 65 20 63 | and the| write c|
|000016a0| 6f 6d 70 6c 65 74 69 6f | 6e 20 68 61 6e 64 6c 65 |ompletio|n handle|
|000016b0| 72 20 74 6f 20 73 65 6e | 64 20 61 20 70 61 63 6b |r to sen|d a pack|
|000016c0| 65 74 2e 20 46 6f 72 6b | 0d 09 09 09 09 09 09 09 |et. Fork|........|
|000016d0| 09 09 64 61 74 61 20 69 | 73 20 73 65 6e 74 20 74 |..data i|s sent t|
|000016e0| 6f 20 61 20 73 65 70 61 | 72 61 74 65 20 61 64 64 |o a sepa|rate add|
|000016f0| 72 65 73 73 20 73 70 61 | 63 65 20 74 68 61 74 20 |ress spa|ce that |
|00001700| 69 73 20 6e 6f 77 20 73 | 65 74 20 74 6f 20 77 72 |is now s|et to wr|
|00001710| 69 74 65 0d 09 09 09 09 | 09 09 09 09 09 6e 6f 74 |ite.....|.....not|
|00001720| 69 66 79 2e 0d 09 20 20 | 20 3c 46 57 32 3e 09 20 |ify... | <FW2>. |
|00001730| 31 30 2f 33 2f 39 36 09 | 6a 6b 6c 09 09 43 68 61 |10/3/96.|jkl..Cha|
|00001740| 6e 67 65 64 20 74 6f 20 | 75 73 65 20 73 65 74 20 |nged to |use set |
|00001750| 64 72 69 76 65 72 20 69 | 6e 74 65 72 66 61 63 65 |driver i|nterface|
|00001760| 20 63 61 6c 6c 73 20 72 | 61 74 68 65 72 20 74 68 | calls r|ather th|
|00001770| 61 6e 20 64 72 69 76 65 | 72 0d 09 09 09 09 09 09 |an drive|r.......|
|00001780| 09 09 09 69 6e 74 65 72 | 66 61 63 65 20 74 61 62 |...inter|face tab|
|00001790| 6c 65 2e 0d 09 20 20 20 | 3c 46 57 31 3e 09 20 31 |le... |<FW1>. 1|
|000017a0| 30 2f 32 2f 39 36 09 6a | 6b 6c 09 09 69 6e 69 74 |0/2/96.j|kl..init|
|000017b0| 69 61 6c 20 63 68 65 63 | 6b 2d 69 6e 2c 20 63 6f |ial chec|k-in, co|
|000017c0| 70 69 65 64 20 66 72 6f | 6d 20 61 76 74 20 64 72 |pied fro|m avt dr|
|000017d0| 69 76 65 72 0d 09 20 20 | 20 09 09 09 09 09 09 09 |iver.. | .......|
|000017e0| 09 41 64 64 65 64 20 44 | 6f 44 72 69 76 65 72 49 |.Added D|oDriverI|
|000017f0| 4f 20 69 6e 74 65 72 66 | 61 63 65 2e 0d 0d 2a 2f |O interf|ace...*/|
|00001800| 0d 0d 23 69 6e 63 6c 75 | 64 65 20 3c 54 79 70 65 |..#inclu|de <Type|
|00001810| 73 2e 68 3e 0d 23 69 6e | 63 6c 75 64 65 20 3c 45 |s.h>.#in|clude <E|
|00001820| 72 72 6f 72 73 2e 68 3e | 0d 23 69 6e 63 6c 75 64 |rrors.h>|.#includ|
|00001830| 65 20 3c 44 65 76 69 63 | 65 73 2e 68 3e 0d 23 69 |e <Devic|es.h>.#i|
|00001840| 6e 63 6c 75 64 65 20 3c | 44 72 69 76 65 72 53 65 |nclude <|DriverSe|
|00001850| 72 76 69 63 65 73 2e 68 | 3e 0d 23 69 6e 63 6c 75 |rvices.h|>.#inclu|
|00001860| 64 65 20 3c 46 69 72 65 | 57 69 72 65 2e 68 3e 0d |de <Fire|Wire.h>.|
|00001870| 0d 23 69 6e 63 6c 75 64 | 65 20 22 46 57 69 58 2e |.#includ|e "FWiX.|
|00001880| 68 22 0d 23 69 6e 63 6c | 75 64 65 20 22 46 57 69 |h".#incl|ude "FWi|
|00001890| 58 44 72 69 76 65 72 2e | 68 22 0d 0d 23 69 6e 63 |XDriver.|h"..#inc|
|000018a0| 6c 75 64 65 20 3c 73 74 | 64 69 6f 2e 68 3e 0d 63 |lude <st|dio.h>.c|
|000018b0| 68 61 72 20 20 64 65 62 | 75 67 53 74 72 5b 32 35 |har deb|ugStr[25|
|000018c0| 36 5d 3b 0d 73 74 61 74 | 69 63 20 70 61 73 63 61 |6];.stat|ic pasca|
|000018d0| 6c 20 76 6f 69 64 20 46 | 57 44 65 62 75 67 53 74 |l void F|WDebugSt|
|000018e0| 72 28 0d 09 43 6f 6e 73 | 74 53 74 72 32 35 35 50 |r(..Cons|tStr255P|
|000018f0| 61 72 61 6d 09 09 09 64 | 65 62 75 67 67 65 72 4d |aram...d|ebuggerM|
|00001900| 73 67 29 0d 7b 0d 23 69 | 66 64 65 66 20 46 57 5f |sg).{.#i|fdef FW_|
|00001910| 44 45 42 55 47 5f 42 55 | 49 4c 44 0d 23 69 66 20 |DEBUG_BU|ILD.#if |
|00001920| 46 57 5f 44 45 42 55 47 | 5f 42 55 49 4c 44 0d 09 |FW_DEBUG|_BUILD..|
|00001930| 44 65 62 75 67 53 74 72 | 20 28 64 65 62 75 67 67 |DebugStr| (debugg|
|00001940| 65 72 4d 73 67 29 3b 0d | 23 65 6e 64 69 66 0d 23 |erMsg);.|#endif.#|
|00001950| 65 6e 64 69 66 0d 7d 0d | 0d 0d 2f 2f 20 64 65 66 |endif.}.|..// def|
|00001960| 69 6e 65 20 46 69 72 65 | 42 75 67 20 74 6f 20 65 |ine Fire|Bug to e|
|00001970| 6e 61 62 6c 65 20 73 65 | 6e 64 69 6e 67 20 64 69 |nable se|nding di|
|00001980| 61 67 6e 6f 73 74 69 63 | 20 6d 65 73 73 61 67 65 |agnostic| message|
|00001990| 73 20 74 6f 20 46 69 72 | 65 42 75 67 20 6f 6e 20 |s to Fir|eBug on |
|000019a0| 74 68 65 20 66 6c 79 2e | 0d 2f 2f 20 57 41 52 4e |the fly.|.// WARN|
|000019b0| 49 4e 47 3a 20 20 52 65 | 61 64 20 74 68 65 20 6e |ING: Re|ad the n|
|000019c0| 6f 74 65 73 20 62 65 6c | 6f 77 20 66 69 72 73 74 |otes bel|ow first|
|000019d0| 2e 20 20 42 65 20 73 75 | 72 65 20 75 73 65 20 22 |. Be su|re use "|
|000019e0| 74 63 6f 64 65 20 6f 6e | 20 31 22 20 69 6e 20 46 |tcode on| 1" in F|
|000019f0| 69 72 65 42 75 67 0d 2f | 2f 20 73 6f 20 74 68 61 |ireBug./|/ so tha|
|00001a00| 74 20 79 6f 75 20 63 61 | 6e 20 73 65 65 20 74 68 |t you ca|n see th|
|00001a10| 65 20 6d 65 73 73 61 67 | 65 73 2e 20 20 5b 41 6c |e messag|es. [Al|
|00001a20| 73 6f 20 75 73 65 20 22 | 61 63 6b 20 30 22 20 69 |so use "|ack 0" i|
|00001a30| 66 20 79 6f 75 20 64 6f | 6e 27 74 20 77 61 6e 74 |f you do|n't want|
|00001a40| 20 74 6f 0d 2f 2f 20 73 | 65 65 20 6d 61 6e 79 20 | to.// s|ee many |
|00001a50| 6f 74 68 65 72 20 70 61 | 63 6b 65 74 73 5d 0d 0d |other pa|ckets]..|
|00001a60| 2f 2f 23 64 65 66 69 6e | 65 20 46 69 72 65 42 75 |//#defin|e FireBu|
|00001a70| 67 0d 23 69 66 64 65 66 | 20 46 69 72 65 42 75 67 |g.#ifdef| FireBug|
|00001a80| 0d 73 74 61 74 69 63 20 | 63 68 61 72 20 66 69 72 |.static |char fir|
|00001a90| 65 42 75 67 5b 32 35 36 | 5d 3b 0d 73 74 61 74 69 |eBug[256|];.stati|
|00001aa0| 63 20 46 57 52 65 66 65 | 72 65 6e 63 65 49 44 20 |c FWRefe|renceID |
|00001ab0| 66 69 72 65 42 75 67 49 | 44 3b 0d 73 74 61 74 69 |fireBugI|D;.stati|
|00001ac0| 63 20 46 57 43 6f 6d 6d | 61 6e 64 4f 62 6a 65 63 |c FWComm|andObjec|
|00001ad0| 74 49 44 20 66 69 72 65 | 42 75 67 43 6f 6d 6d 61 |tID fire|BugComma|
|00001ae0| 6e 64 4f 62 6a 65 63 74 | 49 44 3b 0d 73 74 61 74 |ndObject|ID;.stat|
|00001af0| 69 63 20 55 49 6e 74 33 | 32 20 66 69 72 65 42 75 |ic UInt3|2 fireBu|
|00001b00| 67 4e 65 65 64 43 6f 6d | 6d 61 6e 64 4f 62 6a 65 |gNeedCom|mandObje|
|00001b10| 63 74 20 3d 20 31 3b 0d | 0d 73 74 61 74 69 63 20 |ct = 1;.|.static |
|00001b20| 76 6f 69 64 20 46 69 72 | 65 42 75 67 4d 73 67 20 |void Fir|eBugMsg |
|00001b30| 28 63 68 61 72 20 2a 20 | 6d 73 67 29 0d 7b 0d 09 |(char * |msg).{..|
|00001b40| 46 57 54 6f 70 6f 6c 6f | 67 79 4d 61 70 20 74 6f |FWTopolo|gyMap to|
|00001b50| 70 6f 6c 6f 67 79 3b 0d | 09 4f 53 53 74 61 74 75 |pology;.|.OSStatu|
|00001b60| 73 20 73 74 61 74 75 73 | 3b 0d 09 0d 09 69 66 20 |s status|;....if |
|00001b70| 28 66 69 72 65 42 75 67 | 4e 65 65 64 43 6f 6d 6d |(fireBug|NeedComm|
|00001b80| 61 6e 64 4f 62 6a 65 63 | 74 29 20 72 65 74 75 72 |andObjec|t) retur|
|00001b90| 6e 3b 0d 09 0d 09 2f 2f | 20 49 74 20 77 6f 75 6c |n;....//| It woul|
|00001ba0| 64 20 70 72 6f 62 61 62 | 6c 79 20 62 65 20 6d 6f |d probab|ly be mo|
|00001bb0| 72 65 20 73 61 66 65 20 | 74 6f 20 61 64 64 20 61 |re safe |to add a|
|00001bc0| 20 6d 65 63 68 61 6e 69 | 73 6d 20 74 6f 20 6d 61 | mechani|sm to ma|
|00001bd0| 6b 65 20 73 75 72 65 20 | 74 68 65 0d 09 2f 2f 20 |ke sure |the..// |
|00001be0| 6d 6f 73 74 20 72 65 63 | 65 6e 74 20 46 69 72 65 |most rec|ent Fire|
|00001bf0| 42 75 67 4d 73 67 20 63 | 6f 6d 70 6c 65 74 65 64 |BugMsg c|ompleted|
|00001c00| 20 62 65 66 6f 72 65 20 | 77 65 20 72 65 63 79 63 | before |we recyc|
|00001c10| 6c 65 20 74 68 65 20 63 | 6f 6d 6d 61 6e 64 20 6f |le the c|ommand o|
|00001c20| 62 6a 65 63 74 2e 0d 09 | 2f 2f 20 42 75 74 20 49 |bject...|// But I|
|00001c30| 20 65 78 70 65 63 74 20 | 74 68 61 74 20 74 68 65 | expect |that the|
|00001c40| 20 46 57 47 65 74 54 6f | 70 6f 6c 6f 67 79 4d 61 | FWGetTo|pologyMa|
|00001c50| 70 20 77 69 6c 6c 20 70 | 72 6f 62 61 62 6c 79 20 |p will p|robably |
|00001c60| 74 61 6b 65 20 63 61 72 | 65 20 6f 66 20 74 68 69 |take car|e of thi|
|00001c70| 73 2e 0d 09 0d 09 73 74 | 61 74 75 73 20 3d 20 46 |s.....st|atus = F|
|00001c80| 57 47 65 74 54 6f 70 6f | 6c 6f 67 79 4d 61 70 20 |WGetTopo|logyMap |
|00001c90| 28 66 69 72 65 42 75 67 | 49 44 2c 20 26 74 6f 70 |(fireBug|ID, &top|
|00001ca0| 6f 6c 6f 67 79 29 3b 0d | 09 73 74 61 74 75 73 20 |ology);.|.status |
|00001cb0| 3d 20 46 57 53 65 74 41 | 73 79 6e 63 68 43 6f 6d |= FWSetA|synchCom|
|00001cc0| 6d 61 6e 64 47 65 6e 65 | 72 61 74 69 6f 6e 20 28 |mandGene|ration (|
|00001cd0| 66 69 72 65 42 75 67 43 | 6f 6d 6d 61 6e 64 4f 62 |fireBugC|ommandOb|
|00001ce0| 6a 65 63 74 49 44 2c 20 | 74 6f 70 6f 6c 6f 67 79 |jectID, |topology|
|00001cf0| 2e 67 65 6e 65 72 61 74 | 69 6f 6e 4e 75 6d 62 65 |.generat|ionNumbe|
|00001d00| 72 29 3b 0d 09 73 74 61 | 74 75 73 20 3d 20 46 57 |r);..sta|tus = FW|
|00001d10| 53 65 74 41 73 79 6e 63 | 68 43 6f 6d 6d 61 6e 64 |SetAsync|hCommand|
|00001d20| 42 75 66 66 65 72 20 28 | 66 69 72 65 42 75 67 43 |Buffer (|fireBugC|
|00001d30| 6f 6d 6d 61 6e 64 4f 62 | 6a 65 63 74 49 44 2c 20 |ommandOb|jectID, |
|00001d40| 6d 73 67 29 3b 0d 09 73 | 74 61 74 75 73 20 3d 20 |msg);..s|tatus = |
|00001d50| 46 57 53 65 74 41 73 79 | 6e 63 68 43 6f 6d 6d 61 |FWSetAsy|nchComma|
|00001d60| 6e 64 4c 65 6e 67 74 68 | 20 28 66 69 72 65 42 75 |ndLength| (fireBu|
|00001d70| 67 43 6f 6d 6d 61 6e 64 | 4f 62 6a 65 63 74 49 44 |gCommand|ObjectID|
|00001d80| 2c 20 73 74 72 6c 65 6e | 20 28 6d 73 67 29 20 2b |, strlen| (msg) +|
|00001d90| 20 31 29 3b 0d 09 73 74 | 61 74 75 73 20 3d 20 46 | 1);..st|atus = F|
|00001da0| 57 57 72 69 74 65 20 28 | 66 69 72 65 42 75 67 43 |WWrite (|fireBugC|
|00001db0| 6f 6d 6d 61 6e 64 4f 62 | 6a 65 63 74 49 44 29 3b |ommandOb|jectID);|
|00001dc0| 0d 7d 0d 0d 73 74 61 74 | 69 63 20 76 6f 69 64 20 |.}..stat|ic void |
|00001dd0| 46 69 72 65 42 75 67 50 | 72 65 70 20 28 46 57 52 |FireBugP|rep (FWR|
|00001de0| 65 66 65 72 65 6e 63 65 | 49 44 20 74 65 6d 70 49 |eference|ID tempI|
|00001df0| 44 29 0d 7b 0d 09 4f 53 | 53 74 61 74 75 73 20 73 |D).{..OS|Status s|
|00001e00| 74 61 74 75 73 3b 0d 09 | 0d 09 69 66 20 28 66 69 |tatus;..|..if (fi|
|00001e10| 72 65 42 75 67 4e 65 65 | 64 43 6f 6d 6d 61 6e 64 |reBugNee|dCommand|
|00001e20| 4f 62 6a 65 63 74 29 0d | 09 7b 0d 09 09 73 74 61 |Object).|.{...sta|
|00001e30| 74 75 73 20 3d 20 46 57 | 41 6c 6c 6f 63 61 74 65 |tus = FW|Allocate|
|00001e40| 41 73 79 6e 63 68 43 6f | 6d 6d 61 6e 64 4f 62 6a |AsynchCo|mmandObj|
|00001e50| 65 63 74 20 28 26 66 69 | 72 65 42 75 67 43 6f 6d |ect (&fi|reBugCom|
|00001e60| 6d 61 6e 64 4f 62 6a 65 | 63 74 49 44 29 3b 0d 09 |mandObje|ctID);..|
|00001e70| 09 69 66 20 28 73 74 61 | 74 75 73 20 3d 3d 20 6e |.if (sta|tus == n|
|00001e80| 6f 45 72 72 29 0d 09 09 | 7b 09 09 09 0d 09 09 09 |oErr)...|{.......|
|00001e90| 46 57 47 65 74 4c 6f 63 | 61 6c 46 57 52 65 66 65 |FWGetLoc|alFWRefe|
|00001ea0| 72 65 6e 63 65 49 44 46 | 72 6f 6d 46 57 52 65 66 |renceIDF|romFWRef|
|00001eb0| 65 72 65 6e 63 65 49 44 | 20 28 74 65 6d 70 49 44 |erenceID| (tempID|
|00001ec0| 2c 20 26 66 69 72 65 42 | 75 67 49 44 29 3b 0d 0d |, &fireB|ugID);..|
|00001ed0| 09 09 09 46 57 53 65 74 | 46 57 43 6f 6d 6d 61 6e |...FWSet|FWComman|
|00001ee0| 64 50 61 72 61 6d 73 28 | 66 69 72 65 42 75 67 43 |dParams(|fireBugC|
|00001ef0| 6f 6d 6d 61 6e 64 4f 62 | 6a 65 63 74 49 44 2c 20 |ommandOb|jectID, |
|00001f00| 66 69 72 65 42 75 67 49 | 44 2c 20 30 2c 20 6e 69 |fireBugI|D, 0, ni|
|00001f10| 6c 2c 20 30 29 3b 0d 09 | 09 09 46 57 53 65 74 43 |l, 0);..|..FWSetC|
|00001f20| 6f 6d 6d 6f 6e 41 73 79 | 6e 63 68 43 6f 6d 6d 61 |ommonAsy|nchComma|
|00001f30| 6e 64 50 61 72 61 6d 73 | 20 28 66 69 72 65 42 75 |ndParams| (fireBu|
|00001f40| 67 43 6f 6d 6d 61 6e 64 | 4f 62 6a 65 63 74 49 44 |gCommand|ObjectID|
|00001f50| 2c 0d 09 09 09 09 09 09 | 09 09 09 09 09 30 78 34 |,.......|.....0x4|
|00001f60| 32 34 32 30 30 30 30 2c | 20 30 78 30 30 30 30 30 |2420000,| 0x00000|
|00001f70| 30 30 30 2c 0d 09 09 09 | 09 09 09 09 09 09 09 09 |000,....|........|
|00001f80| 28 50 74 72 29 20 66 69 | 72 65 42 75 67 2c 20 73 |(Ptr) fi|reBug, s|
|00001f90| 69 7a 65 6f 66 20 28 66 | 69 72 65 42 75 67 29 29 |izeof (f|ireBug))|
|00001fa0| 3b 0d 09 09 09 46 57 53 | 65 74 41 73 79 6e 63 68 |;....FWS|etAsynch|
|00001fb0| 43 6f 6d 6d 61 6e 64 4d | 61 78 52 65 74 72 69 65 |CommandM|axRetrie|
|00001fc0| 73 20 28 66 69 72 65 42 | 75 67 43 6f 6d 6d 61 6e |s (fireB|ugComman|
|00001fd0| 64 4f 62 6a 65 63 74 49 | 44 2c 20 30 29 3b 0d 09 |dObjectI|D, 0);..|
|00001fe0| 09 09 46 57 53 65 74 41 | 73 79 6e 63 68 43 6f 6d |..FWSetA|synchCom|
|00001ff0| 6d 61 6e 64 4d 61 78 50 | 61 79 6c 6f 61 64 53 69 |mandMaxP|ayloadSi|
|00002000| 7a 65 20 28 66 69 72 65 | 42 75 67 43 6f 6d 6d 61 |ze (fire|BugComma|
|00002010| 6e 64 4f 62 6a 65 63 74 | 49 44 2c 20 35 31 32 29 |ndObject|ID, 512)|
|00002020| 3b 0d 09 09 09 46 57 53 | 65 74 41 73 79 6e 63 68 |;....FWS|etAsynch|
|00002030| 43 6f 6d 6d 61 6e 64 54 | 72 61 6e 73 66 65 72 46 |CommandT|ransferF|
|00002040| 6c 61 67 73 20 28 66 69 | 72 65 42 75 67 43 6f 6d |lags (fi|reBugCom|
|00002050| 6d 61 6e 64 4f 62 6a 65 | 63 74 49 44 2c 0d 09 09 |mandObje|ctID,...|
|00002060| 09 09 09 09 09 09 09 09 | 09 20 6b 46 57 41 73 79 |........|. kFWAsy|
|00002070| 6e 63 68 41 62 73 6f 6c | 75 74 65 41 64 64 72 65 |nchAbsol|uteAddre|
|00002080| 73 73 20 7c 0d 09 09 09 | 09 09 09 09 09 09 09 09 |ss |....|........|
|00002090| 20 6b 46 57 41 73 79 6e | 63 68 4f 76 65 72 72 69 | kFWAsyn|chOverri|
|000020a0| 64 65 4d 61 78 50 61 79 | 6c 6f 61 64 29 3b 0d 09 |deMaxPay|load);..|
|000020b0| 09 7d 0d 09 0d 09 09 66 | 69 72 65 42 75 67 4e 65 |.}.....f|ireBugNe|
|000020c0| 65 64 43 6f 6d 6d 61 6e | 64 4f 62 6a 65 63 74 20 |edComman|dObject |
|000020d0| 3d 20 30 3b 0d 09 7d 0d | 7d 0d 23 65 6e 64 69 66 |= 0;..}.|}.#endif|
|000020e0| 0d 0d 0d 2f 2f 2f 2f 2f | 2f 2f 2f 2f 2f 2f 2f 2f |.../////|////////|
|000020f0| 2f 2f 2f 2f 2f 2f 2f 2f | 2f 2f 2f 2f 2f 2f 2f 2f |////////|////////|
|00002100| 2f 2f 2f 2f 2f 2f 2f 2f | 2f 2f 2f 2f 2f 2f 2f 2f |////////|////////|
|00002110| 2f 2f 2f 2f 2f 2f 2f 2f | 2f 2f 2f 2f 2f 2f 2f 2f |////////|////////|
|00002120| 2f 2f 2f 2f 2f 2f 2f 2f | 2f 2f 2f 2f 2f 2f 2f 2f |////////|////////|
|00002130| 2f 2f 2f 0d 2f 2f 0d 2f | 2f 20 49 6e 74 65 72 6e |///.//./|/ Intern|
|00002140| 61 6c 20 70 72 6f 63 65 | 64 75 72 65 20 70 72 6f |al proce|dure pro|
|00002150| 74 6f 74 79 70 65 73 2e | 0d 2f 2f 0d 0d 73 74 61 |totypes.|.//..sta|
|00002160| 74 69 63 20 76 6f 69 64 | 20 48 61 6e 64 6c 65 46 |tic void| HandleF|
|00002170| 6c 6f 77 43 6f 6e 74 72 | 6f 6c 4e 6f 74 69 66 79 |lowContr|olNotify|
|00002180| 20 28 0d 09 46 57 58 4e | 6f 64 65 44 61 74 61 50 | (..FWXN|odeDataP|
|00002190| 74 72 09 09 09 09 70 46 | 57 58 4e 6f 64 65 44 61 |tr....pF|WXNodeDa|
|000021a0| 74 61 2c 0d 09 50 74 72 | 09 09 09 09 09 09 09 70 |ta,..Ptr|.......p|
|000021b0| 4d 65 73 73 61 67 65 29 | 3b 0d 0d 73 74 61 74 69 |Message)|;..stati|
|000021c0| 63 20 76 6f 69 64 20 48 | 61 6e 64 6c 65 43 6f 6e |c void H|andleCon|
|000021d0| 74 72 6f 6c 4e 6f 74 69 | 66 79 20 28 0d 09 46 57 |trolNoti|fy (..FW|
|000021e0| 58 4e 6f 64 65 44 61 74 | 61 50 74 72 09 09 09 09 |XNodeDat|aPtr....|
|000021f0| 70 46 57 58 4e 6f 64 65 | 44 61 74 61 2c 0d 09 50 |pFWXNode|Data,..P|
|00002200| 74 72 09 09 09 09 09 09 | 09 70 4d 65 73 73 61 67 |tr......|.pMessag|
|00002210| 65 2c 0d 09 55 49 6e 74 | 33 32 09 09 09 09 09 09 |e,..UInt|32......|
|00002220| 6d 73 67 4c 65 6e 67 74 | 68 29 3b 0d 0d 73 74 61 |msgLengt|h);..sta|
|00002230| 74 69 63 20 76 6f 69 64 | 20 48 61 6e 64 6c 65 44 |tic void| HandleD|
|00002240| 61 74 61 44 6f 6e 65 20 | 28 0d 09 46 57 58 4e 6f |ataDone |(..FWXNo|
|00002250| 64 65 44 61 74 61 50 74 | 72 09 09 09 09 70 46 57 |deDataPt|r....pFW|
|00002260| 58 4e 6f 64 65 44 61 74 | 61 2c 0d 09 55 49 6e 74 |XNodeDat|a,..UInt|
|00002270| 33 32 09 09 09 09 09 09 | 63 6f 75 6e 74 2c 0d 09 |32......|count,..|
|00002280| 55 49 6e 74 33 32 09 09 | 09 09 09 09 63 68 65 63 |UInt32..|....chec|
|00002290| 6b 53 75 6d 29 3b 0d 0d | 73 74 61 74 69 63 20 4f |kSum);..|static O|
|000022a0| 53 53 74 61 74 75 73 09 | 46 57 50 44 72 69 76 65 |SStatus.|FWPDrive|
|000022b0| 72 55 6e 69 74 41 64 64 | 65 64 20 28 0d 09 46 57 |rUnitAdd|ed (..FW|
|000022c0| 50 44 72 69 76 65 72 49 | 44 09 09 09 09 09 66 77 |PDriverI|D.....fw|
|000022d0| 50 44 72 69 76 65 72 49 | 44 2c 0d 09 55 49 6e 74 |PDriverI|D,..UInt|
|000022e0| 33 32 09 09 09 09 09 09 | 66 77 50 44 72 69 76 65 |32......|fwPDrive|
|000022f0| 72 53 70 65 63 69 66 69 | 63 44 61 74 61 2c 0d 09 |rSpecifi|cData,..|
|00002300| 46 57 55 6e 69 74 49 44 | 09 09 09 09 09 66 77 55 |FWUnitID|.....fwU|
|00002310| 6e 69 74 49 44 29 3b 0d | 0d 73 74 61 74 69 63 20 |nitID);.|.static |
|00002320| 4f 53 53 74 61 74 75 73 | 09 46 57 50 44 72 69 76 |OSStatus|.FWPDriv|
|00002330| 65 72 55 6e 69 74 52 65 | 6d 6f 76 65 64 20 28 0d |erUnitRe|moved (.|
|00002340| 09 46 57 50 44 72 69 76 | 65 72 49 44 09 09 09 09 |.FWPDriv|erID....|
|00002350| 09 66 77 50 44 72 69 76 | 65 72 49 44 2c 0d 09 55 |.fwPDriv|erID,..U|
|00002360| 49 6e 74 33 32 09 09 09 | 09 09 09 66 77 50 44 72 |Int32...|...fwPDr|
|00002370| 69 76 65 72 53 70 65 63 | 69 66 69 63 44 61 74 61 |iverSpec|ificData|
|00002380| 2c 0d 09 46 57 55 6e 69 | 74 49 44 09 09 09 09 09 |,..FWUni|tID.....|
|00002390| 66 77 55 6e 69 74 49 44 | 29 3b 0d 0d 73 74 61 74 |fwUnitID|);..stat|
|000023a0| 69 63 20 76 6f 69 64 20 | 46 6c 6f 77 43 6f 6e 74 |ic void |FlowCont|
|000023b0| 72 6f 6c 43 6f 6d 70 6c | 65 74 65 20 28 0d 09 46 |rolCompl|ete (..F|
|000023c0| 57 43 6f 6d 6d 61 6e 64 | 4f 62 6a 65 63 74 49 44 |WCommand|ObjectID|
|000023d0| 09 09 09 66 77 43 6f 6d | 6d 61 6e 64 4f 62 6a 65 |...fwCom|mandObje|
|000023e0| 63 74 49 44 2c 0d 09 4f | 53 53 74 61 74 75 73 09 |ctID,..O|SStatus.|
|000023f0| 09 09 09 09 63 6f 6d 6d | 61 6e 64 53 74 61 74 75 |....comm|andStatu|
|00002400| 73 2c 0d 09 55 49 6e 74 | 33 32 09 09 09 09 09 09 |s,..UInt|32......|
|00002410| 63 6f 6d 70 6c 65 74 69 | 6f 6e 50 72 6f 63 44 61 |completi|onProcDa|
|00002420| 74 61 29 3b 0d 0d 73 74 | 61 74 69 63 20 76 6f 69 |ta);..st|atic voi|
|00002430| 64 20 46 6c 6f 77 43 6f | 6e 74 72 6f 6c 52 65 70 |d FlowCo|ntrolRep|
|00002440| 6c 79 43 6f 6d 70 6c 65 | 74 65 20 28 0d 09 46 57 |lyComple|te (..FW|
|00002450| 43 6f 6d 6d 61 6e 64 4f | 62 6a 65 63 74 49 44 09 |CommandO|bjectID.|
|00002460| 09 09 66 77 43 6f 6d 6d | 61 6e 64 4f 62 6a 65 63 |..fwComm|andObjec|
|00002470| 74 49 44 2c 0d 09 4f 53 | 53 74 61 74 75 73 09 09 |tID,..OS|Status..|
|00002480| 09 09 09 63 6f 6d 6d 61 | 6e 64 53 74 61 74 75 73 |...comma|ndStatus|
|00002490| 2c 0d 09 55 49 6e 74 33 | 32 09 09 09 09 09 09 63 |,..UInt3|2......c|
|000024a0| 6f 6d 70 6c 65 74 69 6f | 6e 50 72 6f 63 44 61 74 |ompletio|nProcDat|
|000024b0| 61 29 3b 0d 0d 73 74 61 | 74 69 63 20 4f 53 53 74 |a);..sta|tic OSSt|
|000024c0| 61 74 75 73 20 46 57 58 | 52 65 61 64 20 28 0d 09 |atus FWX|Read (..|
|000024d0| 46 57 58 41 73 79 6e 63 | 68 50 61 72 61 6d 73 50 |FWXAsync|hParamsP|
|000024e0| 74 72 09 09 09 70 46 57 | 58 41 73 79 6e 63 68 50 |tr...pFW|XAsynchP|
|000024f0| 61 72 61 6d 73 29 3b 0d | 0d 73 74 61 74 69 63 20 |arams);.|.static |
|00002500| 4f 53 53 74 61 74 75 73 | 20 46 57 58 57 72 69 74 |OSStatus| FWXWrit|
|00002510| 65 20 28 0d 09 46 57 58 | 41 73 79 6e 63 68 50 61 |e (..FWX|AsynchPa|
|00002520| 72 61 6d 73 50 74 72 09 | 09 09 70 46 57 58 41 73 |ramsPtr.|..pFWXAs|
|00002530| 79 6e 63 68 50 61 72 61 | 6d 73 29 3b 0d 0d 73 74 |ynchPara|ms);..st|
|00002540| 61 74 69 63 20 76 6f 69 | 64 20 44 61 74 61 44 6f |atic voi|d DataDo|
|00002550| 6e 65 43 6f 6d 70 6c 65 | 74 65 28 0d 09 46 57 43 |neComple|te(..FWC|
|00002560| 6f 6d 6d 61 6e 64 4f 62 | 6a 65 63 74 49 44 09 09 |ommandOb|jectID..|
|00002570| 09 66 77 43 6f 6d 6d 61 | 6e 64 4f 62 6a 65 63 74 |.fwComma|ndObject|
|00002580| 49 44 2c 0d 09 4f 53 53 | 74 61 74 75 73 09 09 09 |ID,..OSS|tatus...|
|00002590| 09 09 63 6f 6d 6d 61 6e | 64 53 74 61 74 75 73 2c |..comman|dStatus,|
|000025a0| 0d 09 55 49 6e 74 33 32 | 09 09 09 09 09 09 63 6f |..UInt32|......co|
|000025b0| 6d 70 6c 65 74 69 6f 6e | 50 72 6f 63 44 61 74 61 |mpletion|ProcData|
|000025c0| 29 3b 0d 0d 73 74 61 74 | 69 63 20 76 6f 69 64 20 |);..stat|ic void |
|000025d0| 48 61 6e 64 6c 65 57 72 | 69 74 65 44 61 74 61 43 |HandleWr|iteDataC|
|000025e0| 6f 6d 70 6c 65 74 65 28 | 0d 09 46 57 43 6f 6d 6d |omplete(|..FWComm|
|000025f0| 61 6e 64 4f 62 6a 65 63 | 74 49 44 09 09 09 66 77 |andObjec|tID...fw|
|00002600| 43 6f 6d 6d 61 6e 64 4f | 62 6a 65 63 74 49 44 2c |CommandO|bjectID,|
|00002610| 0d 09 46 57 58 4e 6f 64 | 65 44 61 74 61 50 74 72 |..FWXNod|eDataPtr|
|00002620| 09 09 09 09 70 46 57 58 | 4e 6f 64 65 44 61 74 61 |....pFWX|NodeData|
|00002630| 2c 0d 09 49 4f 50 61 72 | 61 6d 50 74 72 09 09 09 |,..IOPar|amPtr...|
|00002640| 09 09 70 43 6f 6d 70 6c | 65 74 65 49 4f 50 62 29 |..pCompl|eteIOPb)|
|00002650| 3b 0d 0d 73 74 61 74 69 | 63 20 76 6f 69 64 20 48 |;..stati|c void H|
|00002660| 61 6e 64 6c 65 57 72 69 | 74 65 43 6f 6e 74 72 6f |andleWri|teContro|
|00002670| 6c 43 6f 6d 70 6c 65 74 | 65 28 0d 09 46 57 43 6f |lComplet|e(..FWCo|
|00002680| 6d 6d 61 6e 64 4f 62 6a | 65 63 74 49 44 09 09 09 |mmandObj|ectID...|
|00002690| 66 77 43 6f 6d 6d 61 6e | 64 4f 62 6a 65 63 74 49 |fwComman|dObjectI|
|000026a0| 44 2c 0d 09 46 57 58 4e | 6f 64 65 44 61 74 61 50 |D,..FWXN|odeDataP|
|000026b0| 74 72 09 09 09 09 70 46 | 57 58 4e 6f 64 65 44 61 |tr....pF|WXNodeDa|
|000026c0| 74 61 2c 0d 09 49 4f 50 | 61 72 61 6d 50 74 72 09 |ta,..IOP|aramPtr.|
|000026d0| 09 09 09 09 70 43 6f 6d | 70 6c 65 74 65 49 4f 50 |....pCom|pleteIOP|
|000026e0| 62 29 3b 0d 0d 73 74 61 | 74 69 63 20 76 6f 69 64 |b);..sta|tic void|
|000026f0| 20 46 57 58 57 72 69 74 | 65 43 6f 6d 70 6c 65 74 | FWXWrit|eComplet|
|00002700| 69 6f 6e 20 28 0d 09 46 | 57 43 6f 6d 6d 61 6e 64 |ion (..F|WCommand|
|00002710| 4f 62 6a 65 63 74 49 44 | 09 09 09 66 77 43 6f 6d |ObjectID|...fwCom|
|00002720| 6d 61 6e 64 4f 62 6a 65 | 63 74 49 44 2c 0d 09 4f |mandObje|ctID,..O|
|00002730| 53 53 74 61 74 75 73 09 | 09 09 09 09 63 6f 6d 6d |SStatus.|....comm|
|00002740| 61 6e 64 53 74 61 74 75 | 73 2c 0d 09 55 49 6e 74 |andStatu|s,..UInt|
|00002750| 33 32 09 09 09 09 09 09 | 63 6f 6d 70 6c 65 74 69 |32......|completi|
|00002760| 6f 6e 50 72 6f 63 44 61 | 74 61 29 3b 0d 0d 73 74 |onProcDa|ta);..st|
|00002770| 61 74 69 63 20 4f 53 53 | 74 61 74 75 73 20 52 65 |atic OSS|tatus Re|
|00002780| 74 72 79 46 6c 6f 77 43 | 6f 6e 74 72 6f 6c 20 28 |tryFlowC|ontrol (|
|00002790| 0d 09 76 6f 69 64 09 09 | 09 09 09 09 2a 70 31 2c |..void..|....*p1,|
|000027a0| 0d 09 76 6f 69 64 09 09 | 09 09 09 09 2a 70 32 29 |..void..|....*p2)|
|000027b0| 3b 0d 0d 73 74 61 74 69 | 63 20 4f 53 53 74 61 74 |;..stati|c OSStat|
|000027c0| 75 73 20 53 65 6e 64 44 | 61 74 61 50 61 63 6b 65 |us SendD|ataPacke|
|000027d0| 74 28 0d 09 46 57 58 4e | 6f 64 65 44 61 74 61 50 |t(..FWXN|odeDataP|
|000027e0| 74 72 09 09 09 09 70 46 | 57 58 4e 6f 64 65 44 61 |tr....pF|WXNodeDa|
|000027f0| 74 61 2c 0d 09 49 4f 50 | 61 72 61 6d 50 74 72 09 |ta,..IOP|aramPtr.|
|00002800| 09 09 09 09 70 62 2c 0d | 09 55 49 6e 74 33 32 09 |....pb,.|.UInt32.|
|00002810| 09 09 09 09 09 6c 65 6e | 67 74 68 29 3b 0d 0d 73 |.....len|gth);..s|
|00002820| 74 61 74 69 63 20 4f 53 | 53 74 61 74 75 73 20 53 |tatic OS|Status S|
|00002830| 65 6e 64 43 6f 6e 74 72 | 6f 6c 50 61 63 6b 65 74 |endContr|olPacket|
|00002840| 28 0d 09 46 57 58 4e 6f | 64 65 44 61 74 61 50 74 |(..FWXNo|deDataPt|
|00002850| 72 09 09 09 09 70 46 57 | 58 4e 6f 64 65 44 61 74 |r....pFW|XNodeDat|
|00002860| 61 2c 0d 09 49 4f 50 61 | 72 61 6d 50 74 72 09 09 |a,..IOPa|ramPtr..|
|00002870| 09 09 09 70 62 2c 0d 09 | 55 49 6e 74 33 32 09 09 |...pb,..|UInt32..|
|00002880| 09 09 09 09 6c 65 6e 67 | 74 68 29 3b 0d 0d 73 74 |....leng|th);..st|
|00002890| 61 74 69 63 20 4f 53 53 | 74 61 74 75 73 20 53 65 |atic OSS|tatus Se|
|000028a0| 6e 64 50 61 63 6b 65 74 | 20 28 0d 09 46 57 58 4e |ndPacket| (..FWXN|
|000028b0| 6f 64 65 44 61 74 61 50 | 74 72 09 09 09 09 70 4e |odeDataP|tr....pN|
|000028c0| 6f 64 65 44 61 74 61 29 | 3b 0d 09 0d 73 74 61 74 |odeData)|;...stat|
|000028d0| 69 63 20 4f 53 53 74 61 | 74 75 73 09 46 57 58 49 |ic OSSta|tus.FWXI|
|000028e0| 6e 69 74 69 61 6c 69 7a | 65 20 28 0d 09 46 57 58 |nitializ|e (..FWX|
|000028f0| 49 6e 69 74 69 61 6c 69 | 7a 65 50 61 72 61 6d 73 |Initiali|zeParams|
|00002900| 50 74 72 09 09 70 46 57 | 58 49 6e 69 74 69 61 6c |Ptr..pFW|XInitial|
|00002910| 69 7a 65 50 61 72 61 6d | 73 29 3b 0d 0d 73 74 61 |izeParam|s);..sta|
|00002920| 74 69 63 20 4f 53 53 74 | 61 74 75 73 09 46 57 58 |tic OSSt|atus.FWX|
|00002930| 43 72 65 61 74 65 50 44 | 72 69 76 65 72 55 6e 69 |CreatePD|riverUni|
|00002940| 74 44 69 72 65 63 74 6f | 72 79 20 28 0d 09 46 57 |tDirecto|ry (..FW|
|00002950| 58 44 72 69 76 65 72 44 | 61 74 61 50 74 72 09 09 |XDriverD|ataPtr..|
|00002960| 09 70 46 57 58 44 72 69 | 76 65 72 44 61 74 61 2c |.pFWXDri|verData,|
|00002970| 0d 09 43 53 52 52 4f 4d | 45 6e 74 72 79 49 44 09 |..CSRROM|EntryID.|
|00002980| 09 09 09 2a 70 46 57 50 | 44 72 69 76 65 72 43 53 |...*pFWP|DriverCS|
|00002990| 52 52 4f 4d 55 6e 69 74 | 44 69 72 49 44 29 3b 0d |RROMUnit|DirID);.|
|000029a0| 0d 73 74 61 74 69 63 20 | 4f 53 53 74 61 74 75 73 |.static |OSStatus|
|000029b0| 09 46 57 58 54 65 72 6d | 69 6e 61 74 65 20 28 0d |.FWXTerm|inate (.|
|000029c0| 09 46 57 58 54 65 72 6d | 69 6e 61 74 65 50 61 72 |.FWXTerm|inatePar|
|000029d0| 61 6d 73 50 74 72 09 09 | 70 46 57 58 54 65 72 6d |amsPtr..|pFWXTerm|
|000029e0| 69 6e 61 74 65 50 61 72 | 61 6d 73 29 3b 0d 0d 73 |inatePar|ams);..s|
|000029f0| 74 61 74 69 63 20 4f 53 | 53 74 61 74 75 73 20 46 |tatic OS|Status F|
|00002a00| 57 58 4f 70 65 6e 4e 6f | 64 65 20 28 0d 09 46 57 |WXOpenNo|de (..FW|
|00002a10| 58 4f 70 65 6e 4e 6f 64 | 65 50 61 72 61 6d 73 50 |XOpenNod|eParamsP|
|00002a20| 74 72 09 09 70 46 57 58 | 49 6e 69 74 69 61 6c 69 |tr..pFWX|Initiali|
|00002a30| 7a 65 50 61 72 61 6d 73 | 29 3b 0d 0d 73 74 61 74 |zeParams|);..stat|
|00002a40| 69 63 20 4f 53 53 74 61 | 74 75 73 20 46 57 58 43 |ic OSSta|tus FWXC|
|00002a50| 6c 6f 73 65 4e 6f 64 65 | 20 28 0d 09 46 57 58 4e |loseNode| (..FWXN|
|00002a60| 6f 64 65 44 61 74 61 50 | 74 72 09 09 09 09 70 46 |odeDataP|tr....pF|
|00002a70| 57 58 4e 6f 64 65 44 61 | 74 61 29 3b 0d 0d 73 74 |WXNodeDa|ta);..st|
|00002a80| 61 74 69 63 20 4f 53 53 | 74 61 74 75 73 20 53 65 |atic OSS|tatus Se|
|00002a90| 74 75 70 49 4f 51 75 65 | 75 65 73 20 28 0d 09 46 |tupIOQue|ues (..F|
|00002aa0| 57 58 4e 6f 64 65 44 61 | 74 61 50 74 72 09 09 09 |WXNodeDa|taPtr...|
|00002ab0| 09 70 46 57 58 4e 6f 64 | 65 44 61 74 61 29 3b 0d |.pFWXNod|eData);.|
|00002ac0| 0d 73 74 61 74 69 63 20 | 4f 53 53 74 61 74 75 73 |.static |OSStatus|
|00002ad0| 20 46 57 58 47 65 74 4e | 6f 64 65 44 61 74 61 46 | FWXGetN|odeDataF|
|00002ae0| 72 6f 6d 4e 6f 64 65 49 | 44 20 28 0d 09 46 57 58 |romNodeI|D (..FWX|
|00002af0| 44 72 69 76 65 72 44 61 | 74 61 50 74 72 09 09 09 |DriverDa|taPtr...|
|00002b00| 70 46 57 58 44 72 69 76 | 65 72 44 61 74 61 2c 0d |pFWXDriv|erData,.|
|00002b10| 09 55 49 6e 74 33 32 09 | 09 09 09 09 09 67 65 6e |.UInt32.|.....gen|
|00002b20| 65 72 61 74 69 6f 6e 2c | 0d 09 55 49 6e 74 33 32 |eration,|..UInt32|
|00002b30| 09 09 09 09 09 09 6e 6f | 64 65 49 44 2c 0d 09 46 |......no|deID,..F|
|00002b40| 57 58 4e 6f 64 65 44 61 | 74 61 50 74 72 09 09 09 |WXNodeDa|taPtr...|
|00002b50| 09 2a 70 70 46 57 58 4e | 6f 64 65 44 61 74 61 29 |.*ppFWXN|odeData)|
|00002b60| 3b 0d 0d 2f 2f 2f 2f 2f | 2f 2f 2f 2f 2f 2f 2f 2f |;../////|////////|
|00002b70| 2f 2f 2f 2f 2f 2f 2f 2f | 2f 2f 2f 2f 2f 2f 2f 2f |////////|////////|
|00002b80| 2f 2f 2f 2f 2f 2f 2f 2f | 2f 2f 2f 2f 2f 2f 2f 2f |////////|////////|
|00002b90| 2f 2f 2f 2f 2f 2f 2f 2f | 2f 2f 2f 2f 2f 2f 2f 2f |////////|////////|
|00002ba0| 2f 2f 2f 2f 2f 2f 2f 2f | 2f 2f 2f 2f 2f 2f 2f 2f |////////|////////|
|00002bb0| 2f 2f 2f 0d 2f 2f 0d 2f | 2f 20 54 68 65 20 64 72 |///.//./|/ The dr|
|00002bc0| 69 76 65 72 20 64 65 73 | 63 72 69 70 74 6f 72 2e |iver des|criptor.|
|00002bd0| 0d 2f 2f 0d 0d 44 72 69 | 76 65 72 44 65 73 63 72 |.//..Dri|verDescr|
|00002be0| 69 70 74 69 6f 6e 20 09 | 09 09 09 54 68 65 44 72 |iption .|...TheDr|
|00002bf0| 69 76 65 72 44 65 73 63 | 72 69 70 74 69 6f 6e 20 |iverDesc|ription |
|00002c00| 3d 0d 7b 0d 09 6b 54 68 | 65 44 65 73 63 72 69 70 |=.{..kTh|eDescrip|
|00002c10| 74 69 6f 6e 53 69 67 6e | 61 74 75 72 65 2c 0d 09 |tionSign|ature,..|
|00002c20| 6b 49 6e 69 74 69 61 6c | 44 72 69 76 65 72 44 65 |kInitial|DriverDe|
|00002c30| 73 63 72 69 70 74 6f 72 | 2c 0d 09 7b 0d 09 09 22 |scriptor|,..{..."|
|00002c40| 5c 70 46 57 69 58 22 2c | 0d 09 09 31 2c 20 30 2c |\pFWiX",|...1, 0,|
|00002c50| 20 64 65 76 65 6c 6f 70 | 53 74 61 67 65 2c 20 31 | develop|Stage, 1|
|00002c60| 2c 0d 09 7d 2c 0d 09 7b | 0d 09 09 30 09 09 09 09 |,..},..{|...0....|
|00002c70| 09 09 09 09 09 09 2f 2f | 20 64 72 69 76 65 72 20 |......//| driver |
|00002c80| 72 75 6e 74 69 6d 65 20 | 6f 70 74 69 6f 6e 73 0d |runtime |options.|
|00002c90| 09 09 7c 20 28 30 20 2a | 20 6b 44 72 69 76 65 72 |..| (0 *| kDriver|
|00002ca0| 49 73 4c 6f 61 64 65 64 | 55 70 6f 6e 44 69 73 63 |IsLoaded|UponDisc|
|00002cb0| 6f 76 65 72 79 29 0d 09 | 09 7c 20 28 30 20 2a 20 |overy)..|.| (0 * |
|00002cc0| 6b 44 72 69 76 65 72 49 | 73 4f 70 65 6e 65 64 55 |kDriverI|sOpenedU|
|00002cd0| 70 6f 6e 4c 6f 61 64 29 | 0d 09 09 7c 20 28 31 20 |ponLoad)|...| (1 |
|00002ce0| 2a 20 6b 44 72 69 76 65 | 72 49 73 55 6e 64 65 72 |* kDrive|rIsUnder|
|00002cf0| 45 78 70 65 72 74 43 6f | 6e 74 72 6f 6c 29 0d 09 |ExpertCo|ntrol)..|
|00002d00| 09 7c 20 28 31 20 2a 20 | 6b 44 72 69 76 65 72 49 |.| (1 * |kDriverI|
|00002d10| 73 43 6f 6e 63 75 72 72 | 65 6e 74 29 0d 09 09 7c |sConcurr|ent)...||
|00002d20| 20 28 31 20 2a 20 6b 44 | 72 69 76 65 72 51 75 65 | (1 * kD|riverQue|
|00002d30| 75 65 73 49 4f 50 42 29 | 2c 0d 09 09 22 5c 70 46 |uesIOPB)|,..."\pF|
|00002d40| 57 69 58 44 72 69 76 65 | 72 22 2c 0d 09 7d 2c 0d |WiXDrive|r",..},.|
|00002d50| 0d 09 31 2c 0d 09 6b 53 | 65 72 76 69 63 65 43 61 |..1,..kS|erviceCa|
|00002d60| 74 65 67 6f 72 79 4e 64 | 72 76 44 72 69 76 65 72 |tegoryNd|rvDriver|
|00002d70| 2c 0d 09 6b 53 65 72 76 | 69 63 65 43 61 74 65 67 |,..kServ|iceCateg|
|00002d80| 6f 72 79 46 57 69 58 2c | 0d 2f 2f 09 30 2c 09 2f |oryFWiX,|.//.0,./|
|00002d90| 2f 20 64 65 6c 65 74 65 | 20 74 68 69 73 0d 09 31 |/ delete| this..1|
|00002da0| 2c 30 2c 30 2c 30 0d 7d | 3b 0d 09 0d 46 57 50 44 |,0,0,0.}|;...FWPD|
|00002db0| 72 69 76 65 72 44 65 73 | 63 72 69 70 74 69 6f 6e |riverDes|cription|
|00002dc0| 09 09 09 54 68 65 50 44 | 72 69 76 65 72 44 65 73 |...ThePD|riverDes|
|00002dd0| 63 72 69 70 74 69 6f 6e | 20 3d 0d 7b 0d 09 6b 54 |cription| =.{..kT|
|00002de0| 68 65 46 57 50 44 72 69 | 76 65 72 44 65 73 63 72 |heFWPDri|verDescr|
|00002df0| 69 70 74 69 6f 6e 53 69 | 67 6e 61 74 75 72 65 2c |iptionSi|gnature,|
|00002e00| 0d 09 6b 49 6e 69 74 69 | 61 6c 46 57 50 44 72 69 |..kIniti|alFWPDri|
|00002e10| 76 65 72 44 65 73 63 72 | 69 70 74 6f 72 2c 0d 0d |verDescr|iptor,..|
|00002e20| 09 6b 53 65 72 76 69 63 | 65 43 61 74 65 67 6f 72 |.kServic|eCategor|
|00002e30| 79 46 57 44 72 69 76 65 | 72 2c 0d 09 30 2c 30 2c |yFWDrive|r,..0,0,|
|00002e40| 64 65 76 65 6c 6f 70 53 | 74 61 67 65 2c 30 2c 0d |developS|tage,0,.|
|00002e50| 0d 09 30 2c 0d 09 22 5c | 70 46 57 69 58 22 0d 7d |..0,.."\|pFWiX".}|
|00002e60| 3b 0d 0d 0d 2f 2f 2f 2f | 2f 2f 2f 2f 2f 2f 2f 2f |;...////|////////|
|00002e70| 2f 2f 2f 2f 2f 2f 2f 2f | 2f 2f 2f 2f 2f 2f 2f 2f |////////|////////|
|00002e80| 2f 2f 2f 2f 2f 2f 2f 2f | 2f 2f 2f 2f 2f 2f 2f 2f |////////|////////|
|00002e90| 2f 2f 2f 2f 2f 2f 2f 2f | 2f 2f 2f 2f 2f 2f 2f 2f |////////|////////|
|00002ea0| 2f 2f 2f 2f 2f 2f 2f 2f | 2f 2f 2f 2f 2f 2f 2f 2f |////////|////////|
|00002eb0| 2f 2f 2f 2f 0d 2f 2f 0d | 2f 2f 20 44 6f 44 72 69 |////.//.|// DoDri|
|00002ec0| 76 65 72 49 4f 0d 2f 2f | 0d 2f 2f 20 20 20 4d 61 |verIO.//|.// Ma|
|00002ed0| 69 6e 20 65 6e 74 72 79 | 20 70 6f 69 6e 74 2e 0d |in entry| point..|
|00002ee0| 2f 2f 0d 0d 4f 53 45 72 | 72 09 44 6f 44 72 69 76 |//..OSEr|r.DoDriv|
|00002ef0| 65 72 49 4f 28 0d 09 41 | 64 64 72 65 73 73 53 70 |erIO(..A|ddressSp|
|00002f00| 61 63 65 49 44 09 09 09 | 09 61 64 64 72 65 73 73 |aceID...|.address|
|00002f10| 53 70 61 63 65 49 44 2c | 0d 09 49 4f 43 6f 6d 6d |SpaceID,|..IOComm|
|00002f20| 61 6e 64 49 44 09 09 09 | 09 09 69 6f 43 6f 6d 6d |andID...|..ioComm|
|00002f30| 61 6e 64 49 44 2c 0d 09 | 49 4f 43 6f 6d 6d 61 6e |andID,..|IOComman|
|00002f40| 64 43 6f 6e 74 65 6e 74 | 73 09 09 09 69 6f 43 6f |dContent|s...ioCo|
|00002f50| 6d 6d 61 6e 64 43 6f 6e | 74 65 6e 74 73 2c 0d 09 |mmandCon|tents,..|
|00002f60| 49 4f 43 6f 6d 6d 61 6e | 64 43 6f 64 65 09 09 09 |IOComman|dCode...|
|00002f70| 09 69 6f 43 6f 6d 6d 61 | 6e 64 43 6f 64 65 2c 0d |.ioComma|ndCode,.|
|00002f80| 09 49 4f 43 6f 6d 6d 61 | 6e 64 4b 69 6e 64 09 09 |.IOComma|ndKind..|
|00002f90| 09 09 69 6f 43 6f 6d 6d | 61 6e 64 4b 69 6e 64 29 |..ioComm|andKind)|
|00002fa0| 0d 7b 0d 09 4f 53 45 72 | 72 09 09 09 09 09 09 65 |.{..OSEr|r......e|
|00002fb0| 72 72 20 3d 20 6e 6f 45 | 72 72 3b 0d 0d 09 73 77 |rr = noE|rr;...sw|
|00002fc0| 69 74 63 68 20 28 69 6f | 43 6f 6d 6d 61 6e 64 43 |itch (io|CommandC|
|00002fd0| 6f 64 65 29 0d 09 7b 0d | 09 09 64 65 66 61 75 6c |ode)..{.|..defaul|
|00002fe0| 74 3a 0d 09 09 09 65 72 | 72 20 3d 20 6e 6f 45 72 |t:....er|r = noEr|
|00002ff0| 72 3b 0d 09 7d 0d 0d 09 | 2f 2f 20 63 6f 6d 70 6c |r;..}...|// compl|
|00003000| 65 74 65 20 74 68 65 20 | 63 6f 6d 6d 61 6e 64 0d |ete the |command.|
|00003010| 09 69 66 20 28 69 6f 43 | 6f 6d 6d 61 6e 64 4b 69 |.if (ioC|ommandKi|
|00003020| 6e 64 20 3d 3d 20 6b 49 | 6d 6d 65 64 69 61 74 65 |nd == kI|mmediate|
|00003030| 49 4f 43 6f 6d 6d 61 6e | 64 4b 69 6e 64 29 0d 09 |IOComman|dKind)..|
|00003040| 09 72 65 74 75 72 6e 20 | 65 72 72 3b 0d 09 65 6c |.return |err;..el|
|00003050| 73 65 0d 09 09 72 65 74 | 75 72 6e 20 49 4f 43 6f |se...ret|urn IOCo|
|00003060| 6d 6d 61 6e 64 49 73 43 | 6f 6d 70 6c 65 74 65 28 |mmandIsC|omplete(|
|00003070| 69 6f 43 6f 6d 6d 61 6e | 64 49 44 2c 20 65 72 72 |ioComman|dID, err|
|00003080| 29 3b 0d 0d 09 72 65 74 | 75 72 6e 20 65 72 72 3b |);...ret|urn err;|
|00003090| 0d 7d 0d 0d 0d 2f 2f 2f | 2f 2f 2f 2f 2f 2f 2f 2f |.}...///|////////|
|000030a0| 2f 2f 2f 2f 2f 2f 2f 2f | 2f 2f 2f 2f 2f 2f 2f 2f |////////|////////|
|000030b0| 2f 2f 2f 2f 2f 2f 2f 2f | 2f 2f 2f 2f 2f 2f 2f 2f |////////|////////|
|000030c0| 2f 2f 2f 2f 2f 2f 2f 2f | 2f 2f 2f 2f 2f 2f 2f 2f |////////|////////|
|000030d0| 2f 2f 2f 2f 2f 2f 2f 2f | 2f 2f 2f 2f 2f 2f 2f 2f |////////|////////|
|000030e0| 2f 2f 2f 2f 2f 0d 2f 2f | 0d 2f 2f 09 46 57 43 6c |/////.//|.//.FWCl|
|000030f0| 69 65 6e 74 57 72 69 74 | 65 52 65 71 75 65 73 74 |ientWrit|eRequest|
|00003100| 49 6e 74 65 72 66 61 63 | 65 0d 2f 2f 0d 2f 2f 09 |Interfac|e.//.//.|
|00003110| 48 61 6e 64 6c 65 20 77 | 72 69 74 65 73 20 74 6f |Handle w|rites to|
|00003120| 20 74 68 65 20 63 6c 69 | 65 6e 74 2e 20 43 68 65 | the cli|ent. Che|
|00003130| 63 6b 20 74 68 65 20 74 | 79 70 65 20 6f 66 20 72 |ck the t|ype of r|
|00003140| 65 63 65 69 76 65 64 20 | 64 61 74 61 20 62 79 20 |eceived |data by |
|00003150| 61 64 64 72 65 73 73 0d | 2f 2f 09 73 70 61 63 65 |address.|//.space|
|00003160| 20 69 64 2e 20 53 65 74 | 20 66 6c 6f 77 20 63 6f | id. Set| flow co|
|00003170| 6e 74 72 6f 6c 20 69 6e | 66 6f 72 6d 61 74 69 6f |ntrol in|formatio|
|00003180| 6e 2e 20 49 66 20 74 68 | 65 20 64 61 74 61 20 69 |n. If th|e data i|
|00003190| 73 20 63 6f 6e 74 72 6f | 6c 20 69 6e 66 6f 72 6d |s contro|l inform|
|000031a0| 61 74 69 6f 6e 0d 2f 2f | 09 73 65 6e 64 20 61 6e |ation.//|.send an|
|000031b0| 79 20 66 69 6c 65 20 64 | 61 74 61 20 69 6e 66 6f |y file d|ata info|
|000031c0| 72 6d 61 74 69 6f 6e 20 | 74 6f 20 74 68 65 20 61 |rmation |to the a|
|000031d0| 70 70 6c 69 63 61 74 69 | 6f 6e 20 74 68 65 6e 20 |pplicati|on then |
|000031e0| 73 65 6e 64 20 74 68 65 | 20 63 6f 6e 74 72 6f 6c |send the| control|
|000031f0| 0d 2f 2f 09 69 6e 66 6f | 72 6d 61 74 69 6f 6e 2e |.//.info|rmation.|
|00003200| 20 49 66 20 74 68 65 20 | 64 61 74 61 20 69 73 20 | If the |data is |
|00003210| 66 69 6c 65 20 64 61 74 | 61 20 61 64 64 20 69 74 |file dat|a add it|
|00003220| 20 74 6f 20 74 68 65 20 | 72 65 63 65 69 76 65 20 | to the |receive |
|00003230| 62 75 66 66 65 72 2c 20 | 69 66 20 69 74 0d 2f 2f |buffer, |if it.//|
|00003240| 09 6f 76 65 72 66 6c 6f | 77 73 20 74 68 65 20 72 |.overflo|ws the r|
|00003250| 65 63 65 69 76 65 20 62 | 75 66 66 65 72 2c 20 73 |eceive b|uffer, s|
|00003260| 65 6e 64 20 74 68 65 20 | 62 75 66 66 65 72 20 74 |end the |buffer t|
|00003270| 6f 20 74 68 65 20 61 70 | 70 20 61 6e 64 20 67 65 |o the ap|p and ge|
|00003280| 74 20 61 20 6e 65 77 20 | 6f 6e 65 2e 0d 2f 2f 0d |t a new |one..//.|
|00003290| 0d 4f 53 53 74 61 74 75 | 73 20 46 57 43 6c 69 65 |.OSStatu|s FWClie|
|000032a0| 6e 74 57 72 69 74 65 43 | 6f 6d 70 6c 65 74 65 49 |ntWriteC|ompleteI|
|000032b0| 6e 74 65 72 66 61 63 65 | 28 0d 09 46 57 43 6c 69 |nterface|(..FWCli|
|000032c0| 65 6e 74 41 73 79 6e 63 | 68 52 65 71 75 65 73 74 |entAsync|hRequest|
|000032d0| 50 61 72 61 6d 73 50 74 | 72 0d 09 09 09 09 09 09 |ParamsPt|r.......|
|000032e0| 09 09 70 46 57 43 6c 69 | 65 6e 74 41 73 79 6e 63 |..pFWCli|entAsync|
|000032f0| 68 52 65 71 75 65 73 74 | 50 61 72 61 6d 73 2c 0d |hRequest|Params,.|
|00003300| 09 55 49 6e 74 33 32 09 | 09 09 09 09 09 2a 70 43 |.UInt32.|.....*pC|
|00003310| 6f 6d 6d 61 6e 64 41 63 | 63 65 70 74 61 6e 63 65 |ommandAc|ceptance|
|00003320| 29 0d 7b 0d 09 46 57 58 | 44 72 69 76 65 72 44 61 |).{..FWX|DriverDa|
|00003330| 74 61 50 74 72 09 09 09 | 70 46 57 58 44 72 69 76 |taPtr...|pFWXDriv|
|00003340| 65 72 44 61 74 61 3b 0d | 09 46 57 58 4e 6f 64 65 |erData;.|.FWXNode|
|00003350| 44 61 74 61 50 74 72 09 | 09 09 09 70 46 57 58 4e |DataPtr.|...pFWXN|
|00003360| 6f 64 65 44 61 74 61 3b | 0d 09 4f 53 53 74 61 74 |odeData;|..OSStat|
|00003370| 75 73 09 09 09 09 09 73 | 74 61 74 75 73 20 3d 20 |us.....s|tatus = |
|00003380| 6e 6f 45 72 72 3b 0d 0d | 09 2f 2f 20 72 65 63 6f |noErr;..|.// reco|
|00003390| 76 65 72 20 6f 75 72 20 | 6e 6f 64 65 20 64 61 74 |ver our |node dat|
|000033a0| 61 0d 09 2f 2f 7a 7a 7a | 20 63 68 65 63 6b 20 73 |a..//zzz| check s|
|000033b0| 74 61 74 75 73 0d 09 70 | 46 57 58 44 72 69 76 65 |tatus..p|FWXDrive|
|000033c0| 72 44 61 74 61 20 3d 20 | 28 46 57 58 44 72 69 76 |rData = |(FWXDriv|
|000033d0| 65 72 44 61 74 61 50 74 | 72 29 20 70 46 57 43 6c |erDataPt|r) pFWCl|
|000033e0| 69 65 6e 74 41 73 79 6e | 63 68 52 65 71 75 65 73 |ientAsyn|chReques|
|000033f0| 74 50 61 72 61 6d 73 2d | 3e 70 41 64 64 72 65 73 |tParams-|>pAddres|
|00003400| 73 53 70 65 63 69 66 69 | 63 44 61 74 61 3b 0d 09 |sSpecifi|cData;..|
|00003410| 73 74 61 74 75 73 20 3d | 20 46 57 58 47 65 74 4e |status =| FWXGetN|
|00003420| 6f 64 65 44 61 74 61 46 | 72 6f 6d 4e 6f 64 65 49 |odeDataF|romNodeI|
|00003430| 44 20 28 70 46 57 58 44 | 72 69 76 65 72 44 61 74 |D (pFWXD|riverDat|
|00003440| 61 2c 0d 09 09 09 09 09 | 09 09 09 09 20 20 20 70 |a,......|.... p|
|00003450| 46 57 43 6c 69 65 6e 74 | 41 73 79 6e 63 68 52 65 |FWClient|AsynchRe|
|00003460| 71 75 65 73 74 50 61 72 | 61 6d 73 2d 3e 67 65 6e |questPar|ams->gen|
|00003470| 65 72 61 74 69 6f 6e 2c | 0d 09 09 09 09 09 09 09 |eration,|........|
|00003480| 09 09 20 20 20 70 46 57 | 43 6c 69 65 6e 74 41 73 |.. pFW|ClientAs|
|00003490| 79 6e 63 68 52 65 71 75 | 65 73 74 50 61 72 61 6d |ynchRequ|estParam|
|000034a0| 73 2d 3e 73 6f 75 72 63 | 65 49 44 2c 0d 09 09 09 |s->sourc|eID,....|
|000034b0| 09 09 09 09 09 09 20 20 | 20 26 70 46 57 58 4e 6f |...... | &pFWXNo|
|000034c0| 64 65 44 61 74 61 29 3b | 0d 0d 09 69 66 20 28 73 |deData);|...if (s|
|000034d0| 74 61 74 75 73 20 3d 3d | 20 6e 6f 45 72 72 29 0d |tatus ==| noErr).|
|000034e0| 09 7b 0d 09 09 69 66 20 | 28 70 46 57 43 6c 69 65 |.{...if |(pFWClie|
|000034f0| 6e 74 41 73 79 6e 63 68 | 52 65 71 75 65 73 74 50 |ntAsynch|RequestP|
|00003500| 61 72 61 6d 73 2d 3e 66 | 77 41 64 64 72 65 73 73 |arams->f|wAddress|
|00003510| 53 70 61 63 65 49 44 20 | 3d 3d 20 70 46 57 58 44 |SpaceID |== pFWXD|
|00003520| 72 69 76 65 72 44 61 74 | 61 2d 3e 66 63 41 64 64 |riverDat|a->fcAdd|
|00003530| 72 65 73 73 53 70 61 63 | 65 49 44 29 0d 09 09 09 |ressSpac|eID)....|
|00003540| 0d 09 09 09 48 61 6e 64 | 6c 65 46 6c 6f 77 43 6f |....Hand|leFlowCo|
|00003550| 6e 74 72 6f 6c 4e 6f 74 | 69 66 79 20 28 70 46 57 |ntrolNot|ify (pFW|
|00003560| 58 4e 6f 64 65 44 61 74 | 61 2c 0d 09 09 09 09 09 |XNodeDat|a,......|
|00003570| 09 09 09 09 20 70 46 57 | 43 6c 69 65 6e 74 41 73 |.... pFW|ClientAs|
|00003580| 79 6e 63 68 52 65 71 75 | 65 73 74 50 61 72 61 6d |ynchRequ|estParam|
|00003590| 73 2d 3e 72 65 63 65 69 | 76 65 42 75 66 66 65 72 |s->recei|veBuffer|
|000035a0| 29 3b 0d 09 09 09 09 09 | 09 09 09 09 20 0d 09 09 |);......|.... ...|
|000035b0| 65 6c 73 65 20 69 66 20 | 28 70 46 57 43 6c 69 65 |else if |(pFWClie|
|000035c0| 6e 74 41 73 79 6e 63 68 | 52 65 71 75 65 73 74 50 |ntAsynch|RequestP|
|000035d0| 61 72 61 6d 73 2d 3e 66 | 77 41 64 64 72 65 73 73 |arams->f|wAddress|
|000035e0| 53 70 61 63 65 49 44 20 | 3d 3d 20 70 46 57 58 44 |SpaceID |== pFWXD|
|000035f0| 72 69 76 65 72 44 61 74 | 61 2d 3e 63 6f 6e 74 72 |riverDat|a->contr|
|00003600| 6f 6c 41 64 64 72 65 73 | 73 53 70 61 63 65 49 44 |olAddres|sSpaceID|
|00003610| 29 0d 09 09 09 0d 09 09 | 09 48 61 6e 64 6c 65 43 |).......|.HandleC|
|00003620| 6f 6e 74 72 6f 6c 4e 6f | 74 69 66 79 20 28 70 46 |ontrolNo|tify (pF|
|00003630| 57 58 4e 6f 64 65 44 61 | 74 61 2c 0d 09 09 09 09 |WXNodeDa|ta,.....|
|00003640| 09 09 09 09 20 70 46 57 | 43 6c 69 65 6e 74 41 73 |.... pFW|ClientAs|
|00003650| 79 6e 63 68 52 65 71 75 | 65 73 74 50 61 72 61 6d |ynchRequ|estParam|
|00003660| 73 2d 3e 72 65 63 65 69 | 76 65 42 75 66 66 65 72 |s->recei|veBuffer|
|00003670| 2c 0d 09 09 09 09 09 09 | 09 09 20 70 46 57 43 6c |,.......|.. pFWCl|
|00003680| 69 65 6e 74 41 73 79 6e | 63 68 52 65 71 75 65 73 |ientAsyn|chReques|
|00003690| 74 50 61 72 61 6d 73 2d | 3e 6c 65 6e 67 74 68 29 |tParams-|>length)|
|000036a0| 3b 0d 09 7d 0d 0d 09 2f | 2f 20 43 6f 6d 70 6c 65 |;..}.../|/ Comple|
|000036b0| 74 65 20 46 69 72 65 57 | 69 72 65 20 63 6c 69 65 |te FireW|ire clie|
|000036c0| 6e 74 20 63 6f 6d 6d 61 | 6e 64 2e 0d 09 46 57 43 |nt comma|nd...FWC|
|000036d0| 6c 69 65 6e 74 43 6f 6d | 6d 61 6e 64 49 73 43 6f |lientCom|mandIsCo|
|000036e0| 6d 70 6c 65 74 65 0d 09 | 09 28 70 46 57 43 6c 69 |mplete..|.(pFWCli|
|000036f0| 65 6e 74 41 73 79 6e 63 | 68 52 65 71 75 65 73 74 |entAsync|hRequest|
|00003700| 50 61 72 61 6d 73 2d 3e | 66 77 43 6c 69 65 6e 74 |Params->|fwClient|
|00003710| 49 6e 74 65 72 66 61 63 | 65 50 61 72 61 6d 73 2e |Interfac|eParams.|
|00003720| 66 77 43 6c 69 65 6e 74 | 43 6f 6d 6d 61 6e 64 49 |fwClient|CommandI|
|00003730| 44 2c 0d 09 09 20 73 74 | 61 74 75 73 29 3b 0d 0d |D,... st|atus);..|
|00003740| 09 2f 2f 20 52 65 74 75 | 72 6e 20 63 6f 6d 6d 61 |.// Retu|rn comma|
|00003750| 6e 64 20 61 63 63 65 70 | 74 61 6e 63 65 2e 0d 09 |nd accep|tance...|
|00003760| 2f 2f 7a 7a 7a 20 69 73 | 20 74 68 69 73 20 74 68 |//zzz is| this th|
|00003770| 65 20 72 69 67 68 74 20 | 77 61 79 3f 20 20 49 66 |e right |way? If|
|00003780| 20 77 65 27 76 65 20 63 | 6f 6d 70 6c 65 74 65 64 | we've c|ompleted|
|00003790| 20 74 68 65 20 63 6f 6d | 6d 61 6e 64 2c 20 77 65 | the com|mand, we|
|000037a0| 20 63 61 6e 20 61 63 63 | 65 70 74 20 6d 6f 72 65 | can acc|ept more|
|000037b0| 2e 0d 09 2a 70 43 6f 6d | 6d 61 6e 64 41 63 63 65 |...*pCom|mandAcce|
|000037c0| 70 74 61 6e 63 65 20 3d | 20 6b 46 57 43 6c 69 65 |ptance =| kFWClie|
|000037d0| 6e 74 43 6f 6d 6d 61 6e | 64 41 63 63 65 70 74 4e |ntComman|dAcceptN|
|000037e0| 6f 4d 6f 72 65 3b 0d 0d | 09 72 65 74 75 72 6e 20 |oMore;..|.return |
|000037f0| 73 74 61 74 75 73 3b 0d | 7d 0d 0d 2f 2f 2f 2f 2f |status;.|}../////|
|00003800| 2f 2f 2f 2f 2f 2f 2f 2f | 2f 2f 2f 2f 2f 2f 2f 2f |////////|////////|
|00003810| 2f 2f 2f 2f 2f 2f 2f 2f | 2f 2f 2f 2f 2f 2f 2f 2f |////////|////////|
|00003820| 2f 2f 2f 2f 2f 2f 2f 2f | 2f 2f 2f 2f 2f 2f 2f 2f |////////|////////|
|00003830| 2f 2f 2f 2f 2f 2f 2f 2f | 2f 2f 2f 2f 2f 2f 2f 2f |////////|////////|
|00003840| 2f 2f 2f 2f 2f 2f 2f 2f | 2f 2f 2f 0d 2f 2f 0d 2f |////////|///.//./|
|00003850| 2f 20 48 61 6e 64 6c 65 | 46 6c 6f 77 43 6f 6e 74 |/ Handle|FlowCont|
|00003860| 72 6f 6c 4e 6f 74 69 66 | 79 0d 2f 2f 0d 2f 2f 09 |rolNotif|y.//.//.|
|00003870| 48 61 6e 64 6c 65 20 6e | 6f 74 69 66 69 63 61 74 |Handle n|otificat|
|00003880| 69 6f 6e 20 6f 66 20 61 | 20 66 6c 6f 77 20 63 6f |ion of a| flow co|
|00003890| 6e 74 72 6f 6c 20 6d 65 | 73 73 61 67 65 20 72 65 |ntrol me|ssage re|
|000038a0| 63 65 69 76 65 64 2e 20 | 49 66 20 74 68 65 20 6d |ceived. |If the m|
|000038b0| 65 73 73 61 67 65 0d 2f | 2f 09 69 73 20 61 20 72 |essage./|/.is a r|
|000038c0| 65 71 75 65 73 74 2c 20 | 72 65 70 6c 79 20 77 69 |equest, |reply wi|
|000038d0| 74 68 20 74 68 65 20 61 | 70 70 72 6f 70 72 69 61 |th the a|ppropria|
|000038e0| 74 65 20 66 6c 6f 77 20 | 63 6f 6e 74 72 6f 6c 20 |te flow |control |
|000038f0| 76 61 6c 75 65 2e 20 49 | 66 20 74 68 65 0d 2f 2f |value. I|f the.//|
|00003900| 09 6d 65 73 73 61 67 65 | 20 69 73 20 61 20 72 65 |.message| is a re|
|00003910| 70 6c 79 20 61 6e 64 20 | 74 68 65 72 65 20 61 72 |ply and |there ar|
|00003920| 65 20 6e 6f 77 20 72 65 | 63 65 69 76 65 20 62 75 |e now re|ceive bu|
|00003930| 66 66 65 72 73 20 61 76 | 61 69 6c 61 62 6c 65 2c |ffers av|ailable,|
|00003940| 20 74 72 79 0d 2f 2f 09 | 73 65 6e 64 69 6e 67 20 | try.//.|sending |
|00003950| 61 20 70 61 63 6b 65 74 | 2e 20 49 66 20 74 68 65 |a packet|. If the|
|00003960| 72 65 20 61 72 65 20 6e | 6f 20 62 75 66 66 65 72 |re are n|o buffer|
|00003970| 73 20 61 76 61 69 6c 61 | 62 6c 65 20 73 74 61 72 |s availa|ble star|
|00003980| 74 20 61 20 74 69 6d 65 | 72 20 74 6f 0d 2f 2f 09 |t a time|r to.//.|
|00003990| 77 61 69 74 20 61 6e 64 | 20 74 68 65 6e 20 73 65 |wait and| then se|
|000039a0| 6e 64 20 61 6e 6f 74 68 | 65 72 20 66 6c 6f 77 20 |nd anoth|er flow |
|000039b0| 63 6f 6e 74 72 6f 6c 20 | 72 65 71 75 65 73 74 2e |control |request.|
|000039c0| 0d 2f 2f 0d 0d 73 74 61 | 74 69 63 20 76 6f 69 64 |.//..sta|tic void|
|000039d0| 20 48 61 6e 64 6c 65 46 | 6c 6f 77 43 6f 6e 74 72 | HandleF|lowContr|
|000039e0| 6f 6c 4e 6f 74 69 66 79 | 20 28 0d 09 46 57 58 4e |olNotify| (..FWXN|
|000039f0| 6f 64 65 44 61 74 61 50 | 74 72 09 09 09 70 46 57 |odeDataP|tr...pFW|
|00003a00| 58 4e 6f 64 65 44 61 74 | 61 2c 0d 09 50 74 72 09 |XNodeDat|a,..Ptr.|
|00003a10| 09 09 09 09 09 70 4d 65 | 73 73 61 67 65 29 0d 7b |.....pMe|ssage).{|
|00003a20| 0d 09 55 49 6e 74 33 32 | 09 09 09 09 09 66 63 50 |..UInt32|.....fcP|
|00003a30| 61 63 6b 65 74 43 6f 75 | 6e 74 3b 0d 09 55 49 6e |acketCou|nt;..UIn|
|00003a40| 74 33 32 09 09 09 09 09 | 6d 65 73 73 61 67 65 54 |t32.....|messageT|
|00003a50| 79 70 65 3b 0d 09 41 62 | 73 6f 6c 75 74 65 54 69 |ype;..Ab|soluteTi|
|00003a60| 6d 65 09 09 09 66 63 52 | 65 71 75 65 73 74 44 65 |me...fcR|equestDe|
|00003a70| 6c 61 79 3b 0d 09 4f 53 | 53 74 61 74 75 73 09 09 |lay;..OS|Status..|
|00003a80| 09 09 73 74 61 74 75 73 | 20 3d 20 6e 6f 45 72 72 |..status| = noErr|
|00003a90| 3b 0d 09 0d 09 6d 65 73 | 73 61 67 65 54 79 70 65 |;....mes|sageType|
|00003aa0| 20 3d 20 28 28 55 49 6e | 74 33 32 20 2a 29 20 70 | = ((UIn|t32 *) p|
|00003ab0| 4d 65 73 73 61 67 65 29 | 5b 30 5d 3b 0d 09 73 77 |Message)|[0];..sw|
|00003ac0| 69 74 63 68 20 28 6d 65 | 73 73 61 67 65 54 79 70 |itch (me|ssageTyp|
|00003ad0| 65 29 0d 09 7b 0d 09 09 | 63 61 73 65 20 6b 46 43 |e)..{...|case kFC|
|00003ae0| 44 61 74 61 52 65 71 75 | 65 73 74 3a 0d 09 09 09 |DataRequ|est:....|
|00003af0| 69 66 20 28 21 70 46 57 | 58 4e 6f 64 65 44 61 74 |if (!pFW|XNodeDat|
|00003b00| 61 2d 3e 66 63 52 65 70 | 6c 79 43 6f 6d 6d 61 6e |a->fcRep|lyComman|
|00003b10| 64 4f 62 6a 65 63 74 49 | 6e 55 73 65 29 0d 09 09 |dObjectI|nUse)...|
|00003b20| 09 7b 0d 09 09 09 09 70 | 46 57 58 4e 6f 64 65 44 |.{.....p|FWXNodeD|
|00003b30| 61 74 61 2d 3e 66 63 52 | 65 70 6c 79 42 75 66 66 |ata->fcR|eplyBuff|
|00003b40| 65 72 5b 30 5d 20 3d 20 | 6b 46 43 44 61 74 61 52 |er[0] = |kFCDataR|
|00003b50| 65 70 6c 79 3b 0d 09 09 | 09 09 70 46 57 58 4e 6f |eply;...|..pFWXNo|
|00003b60| 64 65 44 61 74 61 2d 3e | 66 63 52 65 70 6c 79 42 |deData->|fcReplyB|
|00003b70| 75 66 66 65 72 5b 31 5d | 20 3d 20 70 46 57 58 4e |uffer[1]| = pFWXN|
|00003b80| 6f 64 65 44 61 74 61 2d | 3e 64 61 74 61 50 62 43 |odeData-|>dataPbC|
|00003b90| 6f 75 6e 74 3b 0d 09 09 | 09 09 70 46 57 58 4e 6f |ount;...|..pFWXNo|
|00003ba0| 64 65 44 61 74 61 2d 3e | 66 63 52 65 70 6c 79 42 |deData->|fcReplyB|
|00003bb0| 75 66 66 65 72 5b 32 5d | 20 3d 20 28 28 55 49 6e |uffer[2]| = ((UIn|
|00003bc0| 74 33 32 20 2a 29 20 70 | 4d 65 73 73 61 67 65 29 |t32 *) p|Message)|
|00003bd0| 5b 32 5d 3b 0d 09 09 09 | 09 70 46 57 58 4e 6f 64 |[2];....|.pFWXNod|
|00003be0| 65 44 61 74 61 2d 3e 66 | 63 52 65 70 6c 79 43 6f |eData->f|cReplyCo|
|00003bf0| 6d 6d 61 6e 64 4f 62 6a | 65 63 74 49 6e 55 73 65 |mmandObj|ectInUse|
|00003c00| 20 3d 20 74 72 75 65 3b | 0d 09 09 09 09 46 57 53 | = true;|.....FWS|
|00003c10| 65 74 46 57 43 6f 6d 6d | 61 6e 64 43 6f 6d 70 6c |etFWComm|andCompl|
|00003c20| 65 74 69 6f 6e 50 72 6f | 63 44 61 74 61 20 28 70 |etionPro|cData (p|
|00003c30| 46 57 58 4e 6f 64 65 44 | 61 74 61 2d 3e 66 63 52 |FWXNodeD|ata->fcR|
|00003c40| 65 70 6c 79 43 6f 6d 6d | 61 6e 64 4f 62 6a 65 63 |eplyComm|andObjec|
|00003c50| 74 49 44 2c 20 28 55 49 | 6e 74 33 32 29 20 70 46 |tID, (UI|nt32) pF|
|00003c60| 57 58 4e 6f 64 65 44 61 | 74 61 29 3b 0d 09 09 09 |WXNodeDa|ta);....|
|00003c70| 09 46 57 53 65 74 43 6f | 6d 6d 6f 6e 41 73 79 6e |.FWSetCo|mmonAsyn|
|00003c80| 63 68 43 6f 6d 6d 61 6e | 64 50 61 72 61 6d 73 20 |chComman|dParams |
|00003c90| 28 70 46 57 58 4e 6f 64 | 65 44 61 74 61 2d 3e 66 |(pFWXNod|eData->f|
|00003ca0| 63 52 65 70 6c 79 43 6f | 6d 6d 61 6e 64 4f 62 6a |cReplyCo|mmandObj|
|00003cb0| 65 63 74 49 44 2c 0d 09 | 09 09 09 09 09 09 09 09 |ectID,..|........|
|00003cc0| 09 09 09 70 46 57 58 4e | 6f 64 65 44 61 74 61 2d |...pFWXN|odeData-|
|00003cd0| 3e 66 77 78 55 6e 69 74 | 49 6e 66 6f 2e 66 63 41 |>fwxUnit|Info.fcA|
|00003ce0| 64 64 72 65 73 73 2e 61 | 64 64 72 65 73 73 48 69 |ddress.a|ddressHi|
|00003cf0| 2c 0d 09 09 09 09 09 09 | 09 09 09 09 09 09 70 46 |,.......|......pF|
|00003d00| 57 58 4e 6f 64 65 44 61 | 74 61 2d 3e 66 77 78 55 |WXNodeDa|ta->fwxU|
|00003d10| 6e 69 74 49 6e 66 6f 2e | 66 63 41 64 64 72 65 73 |nitInfo.|fcAddres|
|00003d20| 73 2e 61 64 64 72 65 73 | 73 4c 6f 2c 0d 09 09 09 |s.addres|sLo,....|
|00003d30| 09 09 09 09 09 09 09 09 | 09 28 50 74 72 29 20 70 |........|.(Ptr) p|
|00003d40| 46 57 58 4e 6f 64 65 44 | 61 74 61 2d 3e 66 63 52 |FWXNodeD|ata->fcR|
|00003d50| 65 70 6c 79 42 75 66 66 | 65 72 2c 0d 09 09 09 09 |eplyBuff|er,.....|
|00003d60| 09 09 09 09 09 09 09 09 | 6b 46 6c 6f 77 43 6f 6e |........|kFlowCon|
|00003d70| 74 72 6f 6c 53 69 7a 65 | 29 3b 0d 09 09 09 09 73 |trolSize|);.....s|
|00003d80| 74 61 74 75 73 20 3d 20 | 46 57 57 72 69 74 65 28 |tatus = |FWWrite(|
|00003d90| 70 46 57 58 4e 6f 64 65 | 44 61 74 61 2d 3e 66 63 |pFWXNode|Data->fc|
|00003da0| 52 65 70 6c 79 43 6f 6d | 6d 61 6e 64 4f 62 6a 65 |ReplyCom|mandObje|
|00003db0| 63 74 49 44 29 3b 0d 09 | 09 09 09 69 66 20 28 73 |ctID);..|...if (s|
|00003dc0| 74 61 74 75 73 20 21 3d | 20 6e 6f 45 72 72 29 0d |tatus !=| noErr).|
|00003dd0| 09 09 09 09 09 70 46 57 | 58 4e 6f 64 65 44 61 74 |.....pFW|XNodeDat|
|00003de0| 61 2d 3e 66 63 52 65 70 | 6c 79 43 6f 6d 6d 61 6e |a->fcRep|lyComman|
|00003df0| 64 4f 62 6a 65 63 74 49 | 6e 55 73 65 20 3d 20 66 |dObjectI|nUse = f|
|00003e00| 61 6c 73 65 3b 09 09 09 | 09 09 0d 09 09 09 7d 0d |alse;...|......}.|
|00003e10| 09 09 09 62 72 65 61 6b | 3b 0d 09 09 0d 09 09 63 |...break|;......c|
|00003e20| 61 73 65 20 6b 46 43 43 | 6f 6e 74 72 6f 6c 52 65 |ase kFCC|ontrolRe|
|00003e30| 71 75 65 73 74 3a 0d 09 | 09 09 69 66 20 28 21 70 |quest:..|..if (!p|
|00003e40| 46 57 58 4e 6f 64 65 44 | 61 74 61 2d 3e 66 63 52 |FWXNodeD|ata->fcR|
|00003e50| 65 70 6c 79 43 6f 6d 6d | 61 6e 64 4f 62 6a 65 63 |eplyComm|andObjec|
|00003e60| 74 49 6e 55 73 65 29 0d | 09 09 09 7b 0d 09 09 09 |tInUse).|...{....|
|00003e70| 09 70 46 57 58 4e 6f 64 | 65 44 61 74 61 2d 3e 66 |.pFWXNod|eData->f|
|00003e80| 63 52 65 70 6c 79 42 75 | 66 66 65 72 5b 30 5d 20 |cReplyBu|ffer[0] |
|00003e90| 3d 20 6b 46 43 43 6f 6e | 74 72 6f 6c 52 65 70 6c |= kFCCon|trolRepl|
|00003ea0| 79 3b 0d 09 09 09 09 70 | 46 57 58 4e 6f 64 65 44 |y;.....p|FWXNodeD|
|00003eb0| 61 74 61 2d 3e 66 63 52 | 65 70 6c 79 42 75 66 66 |ata->fcR|eplyBuff|
|00003ec0| 65 72 5b 31 5d 20 3d 20 | 70 46 57 58 4e 6f 64 65 |er[1] = |pFWXNode|
|00003ed0| 44 61 74 61 2d 3e 63 6f | 6e 74 72 6f 6c 50 62 43 |Data->co|ntrolPbC|
|00003ee0| 6f 75 6e 74 3b 0d 09 09 | 09 09 70 46 57 58 4e 6f |ount;...|..pFWXNo|
|00003ef0| 64 65 44 61 74 61 2d 3e | 66 63 52 65 70 6c 79 42 |deData->|fcReplyB|
|00003f00| 75 66 66 65 72 5b 32 5d | 20 3d 20 28 28 55 49 6e |uffer[2]| = ((UIn|
|00003f10| 74 33 32 20 2a 29 20 70 | 4d 65 73 73 61 67 65 29 |t32 *) p|Message)|
|00003f20| 5b 32 5d 3b 0d 09 09 09 | 09 70 46 57 58 4e 6f 64 |[2];....|.pFWXNod|
|00003f30| 65 44 61 74 61 2d 3e 66 | 63 52 65 70 6c 79 43 6f |eData->f|cReplyCo|
|00003f40| 6d 6d 61 6e 64 4f 62 6a | 65 63 74 49 6e 55 73 65 |mmandObj|ectInUse|
|00003f50| 20 3d 20 74 72 75 65 3b | 0d 09 09 09 09 46 57 53 | = true;|.....FWS|
|00003f60| 65 74 46 57 43 6f 6d 6d | 61 6e 64 43 6f 6d 70 6c |etFWComm|andCompl|
|00003f70| 65 74 69 6f 6e 50 72 6f | 63 44 61 74 61 20 28 70 |etionPro|cData (p|
|00003f80| 46 57 58 4e 6f 64 65 44 | 61 74 61 2d 3e 66 63 52 |FWXNodeD|ata->fcR|
|00003f90| 65 70 6c 79 43 6f 6d 6d | 61 6e 64 4f 62 6a 65 63 |eplyComm|andObjec|
|00003fa0| 74 49 44 2c 20 28 55 49 | 6e 74 33 32 29 20 70 46 |tID, (UI|nt32) pF|
|00003fb0| 57 58 4e 6f 64 65 44 61 | 74 61 29 3b 0d 09 09 09 |WXNodeDa|ta);....|
|00003fc0| 09 46 57 53 65 74 43 6f | 6d 6d 6f 6e 41 73 79 6e |.FWSetCo|mmonAsyn|
|00003fd0| 63 68 43 6f 6d 6d 61 6e | 64 50 61 72 61 6d 73 20 |chComman|dParams |
|00003fe0| 28 70 46 57 58 4e 6f 64 | 65 44 61 74 61 2d 3e 66 |(pFWXNod|eData->f|
|00003ff0| 63 52 65 70 6c 79 43 6f | 6d 6d 61 6e 64 4f 62 6a |cReplyCo|mmandObj|
|00004000| 65 63 74 49 44 2c 0d 09 | 09 09 09 09 09 09 09 09 |ectID,..|........|
|00004010| 09 09 09 70 46 57 58 4e | 6f 64 65 44 61 74 61 2d |...pFWXN|odeData-|
|00004020| 3e 66 77 78 55 6e 69 74 | 49 6e 66 6f 2e 66 63 41 |>fwxUnit|Info.fcA|
|00004030| 64 64 72 65 73 73 2e 61 | 64 64 72 65 73 73 48 69 |ddress.a|ddressHi|
|00004040| 2c 0d 09 09 09 09 09 09 | 09 09 09 09 09 09 70 46 |,.......|......pF|
|00004050| 57 58 4e 6f 64 65 44 61 | 74 61 2d 3e 66 77 78 55 |WXNodeDa|ta->fwxU|
|00004060| 6e 69 74 49 6e 66 6f 2e | 66 63 41 64 64 72 65 73 |nitInfo.|fcAddres|
|00004070| 73 2e 61 64 64 72 65 73 | 73 4c 6f 2c 0d 09 09 09 |s.addres|sLo,....|
|00004080| 09 09 09 09 09 09 09 09 | 09 28 50 74 72 29 20 70 |........|.(Ptr) p|
|00004090| 46 57 58 4e 6f 64 65 44 | 61 74 61 2d 3e 66 63 52 |FWXNodeD|ata->fcR|
|000040a0| 65 70 6c 79 42 75 66 66 | 65 72 2c 0d 09 09 09 09 |eplyBuff|er,.....|
|000040b0| 09 09 09 09 09 09 09 09 | 6b 46 6c 6f 77 43 6f 6e |........|kFlowCon|
|000040c0| 74 72 6f 6c 53 69 7a 65 | 29 3b 0d 09 09 09 09 73 |trolSize|);.....s|
|000040d0| 74 61 74 75 73 20 3d 20 | 46 57 57 72 69 74 65 28 |tatus = |FWWrite(|
|000040e0| 70 46 57 58 4e 6f 64 65 | 44 61 74 61 2d 3e 66 63 |pFWXNode|Data->fc|
|000040f0| 52 65 70 6c 79 43 6f 6d | 6d 61 6e 64 4f 62 6a 65 |ReplyCom|mandObje|
|00004100| 63 74 49 44 29 3b 0d 09 | 09 09 09 69 66 20 28 73 |ctID);..|...if (s|
|00004110| 74 61 74 75 73 20 21 3d | 20 6e 6f 45 72 72 29 0d |tatus !=| noErr).|
|00004120| 09 09 09 09 09 70 46 57 | 58 4e 6f 64 65 44 61 74 |.....pFW|XNodeDat|
|00004130| 61 2d 3e 66 63 52 65 70 | 6c 79 43 6f 6d 6d 61 6e |a->fcRep|lyComman|
|00004140| 64 4f 62 6a 65 63 74 49 | 6e 55 73 65 20 3d 20 66 |dObjectI|nUse = f|
|00004150| 61 6c 73 65 3b 09 09 09 | 09 09 0d 09 09 09 7d 0d |alse;...|......}.|
|00004160| 09 09 09 62 72 65 61 6b | 3b 0d 09 09 0d 09 09 63 |...break|;......c|
|00004170| 61 73 65 20 6b 46 43 44 | 61 74 61 52 65 70 6c 79 |ase kFCD|ataReply|
|00004180| 3a 0d 09 09 09 66 63 50 | 61 63 6b 65 74 43 6f 75 |:....fcP|acketCou|
|00004190| 6e 74 20 3d 20 28 28 55 | 49 6e 74 33 32 20 2a 29 |nt = ((U|Int32 *)|
|000041a0| 20 70 4d 65 73 73 61 67 | 65 29 5b 32 5d 3b 0d 09 | pMessag|e)[2];..|
|000041b0| 09 09 43 61 6e 63 65 6c | 54 69 6d 65 72 28 70 46 |..Cancel|Timer(pF|
|000041c0| 57 58 4e 6f 64 65 44 61 | 74 61 2d 3e 66 63 54 69 |WXNodeDa|ta->fcTi|
|000041d0| 6d 65 72 49 44 2c 20 26 | 66 63 52 65 71 75 65 73 |merID, &|fcReques|
|000041e0| 74 44 65 6c 61 79 29 3b | 0d 09 09 09 69 66 20 28 |tDelay);|....if (|
|000041f0| 66 63 50 61 63 6b 65 74 | 43 6f 75 6e 74 20 3d 3d |fcPacket|Count ==|
|00004200| 20 70 46 57 58 4e 6f 64 | 65 44 61 74 61 2d 3e 66 | pFWXNod|eData->f|
|00004210| 63 49 6e 64 65 78 29 0d | 09 09 09 7b 0d 09 09 09 |cIndex).|...{....|
|00004220| 09 70 46 57 58 4e 6f 64 | 65 44 61 74 61 2d 3e 66 |.pFWXNod|eData->f|
|00004230| 63 49 6e 64 65 78 2b 2b | 3b 0d 09 09 09 09 70 46 |cIndex++|;.....pF|
|00004240| 57 58 4e 6f 64 65 44 61 | 74 61 2d 3e 64 61 74 61 |WXNodeDa|ta->data|
|00004250| 50 62 41 76 61 69 6c 20 | 3d 20 28 28 53 49 6e 74 |PbAvail |= ((SInt|
|00004260| 33 32 20 2a 29 20 70 4d | 65 73 73 61 67 65 29 5b |32 *) pM|essage)[|
|00004270| 31 5d 3b 0d 09 09 09 09 | 69 66 20 28 70 46 57 58 |1];.....|if (pFWX|
|00004280| 4e 6f 64 65 44 61 74 61 | 2d 3e 64 61 74 61 50 62 |NodeData|->dataPb|
|00004290| 41 76 61 69 6c 20 3e 20 | 30 29 0d 09 09 09 09 7b |Avail > |0).....{|
|000042a0| 0d 09 09 09 09 09 69 66 | 20 28 70 46 57 58 4e 6f |......if| (pFWXNo|
|000042b0| 64 65 44 61 74 61 2d 3e | 66 63 53 74 6f 70 53 65 |deData->|fcStopSe|
|000042c0| 6e 64 29 0d 09 09 09 09 | 09 7b 0d 09 09 09 09 09 |nd).....|.{......|
|000042d0| 09 2f 2f 20 74 68 65 72 | 65 20 77 65 72 65 20 6e |.// ther|e were n|
|000042e0| 6f 20 62 75 66 66 65 72 | 73 20 62 65 66 6f 72 65 |o buffer|s before|
|000042f0| 2c 20 6e 6f 77 20 74 68 | 65 72 65 20 61 72 65 20 |, now th|ere are |
|00004300| 73 6f 6d 65 2c 20 72 65 | 73 74 61 72 74 20 73 65 |some, re|start se|
|00004310| 6e 64 69 6e 67 0d 09 09 | 09 09 09 09 70 46 57 58 |nding...|....pFWX|
|00004320| 4e 6f 64 65 44 61 74 61 | 2d 3e 66 63 53 74 6f 70 |NodeData|->fcStop|
|00004330| 53 65 6e 64 20 3d 20 66 | 61 6c 73 65 3b 0d 09 09 |Send = f|alse;...|
|00004340| 09 09 09 09 73 74 61 74 | 75 73 20 3d 20 53 65 6e |....stat|us = Sen|
|00004350| 64 50 61 63 6b 65 74 28 | 70 46 57 58 4e 6f 64 65 |dPacket(|pFWXNode|
|00004360| 44 61 74 61 29 3b 0d 09 | 09 09 09 09 7d 0d 09 09 |Data);..|....}...|
|00004370| 09 09 7d 0d 09 09 09 09 | 65 6c 73 65 0d 09 09 09 |..}.....|else....|
|00004380| 09 7b 0d 09 09 09 09 09 | 2f 2f 20 73 74 69 6c 6c |.{......|// still|
|00004390| 20 6e 6f 20 62 75 66 66 | 65 72 73 20 61 76 61 69 | no buff|ers avai|
|000043a0| 6c 61 62 6c 65 2c 20 72 | 65 73 65 74 20 74 69 6d |lable, r|eset tim|
|000043b0| 65 72 0d 09 09 09 09 09 | 66 63 52 65 71 75 65 73 |er......|fcReques|
|000043c0| 74 44 65 6c 61 79 20 3d | 20 41 64 64 41 62 73 6f |tDelay =| AddAbso|
|000043d0| 6c 75 74 65 54 6f 41 62 | 73 6f 6c 75 74 65 20 28 |luteToAb|solute (|
|000043e0| 55 70 54 69 6d 65 20 28 | 29 2c 20 44 75 72 61 74 |UpTime (|), Durat|
|000043f0| 69 6f 6e 54 6f 41 62 73 | 6f 6c 75 74 65 28 32 30 |ionToAbs|olute(20|
|00004400| 29 29 3b 09 09 2f 2f 20 | 32 30 20 6d 69 6c 6c 69 |));..// |20 milli|
|00004410| 73 65 63 6f 6e 64 73 0d | 09 09 09 09 73 74 61 74 |seconds.|....stat|
|00004420| 75 73 20 3d 20 53 65 74 | 49 6e 74 65 72 72 75 70 |us = Set|Interrup|
|00004430| 74 54 69 6d 65 72 20 28 | 26 66 63 52 65 71 75 65 |tTimer (|&fcReque|
|00004440| 73 74 44 65 6c 61 79 2c | 09 09 09 09 09 09 09 09 |stDelay,|........|
|00004450| 09 2f 2f 20 4a 4b 4c 20 | 2a 2a 2a 20 77 68 61 74 |.// JKL |*** what|
|00004460| 27 73 20 61 20 67 6f 6f | 64 20 64 65 6c 61 79 0d |'s a goo|d delay.|
|00004470| 09 09 09 09 09 09 09 09 | 09 09 09 52 65 74 72 79 |........|...Retry|
|00004480| 46 6c 6f 77 43 6f 6e 74 | 72 6f 6c 2c 0d 09 09 09 |FlowCont|rol,....|
|00004490| 09 09 09 09 09 09 09 09 | 28 76 6f 69 64 20 2a 29 |........|(void *)|
|000044a0| 20 70 46 57 58 4e 6f 64 | 65 44 61 74 61 2c 0d 09 | pFWXNod|eData,..|
|000044b0| 09 09 09 09 09 09 09 09 | 09 09 26 70 46 57 58 4e |........|..&pFWXN|
|000044c0| 6f 64 65 44 61 74 61 2d | 3e 66 63 54 69 6d 65 72 |odeData-|>fcTimer|
|000044d0| 49 44 29 3b 0d 09 09 09 | 7d 0d 09 09 09 7d 0d 09 |ID);....|}....}..|
|000044e0| 09 09 65 6c 73 65 0d 09 | 09 09 7b 0d 09 09 09 09 |..else..|..{.....|
|000044f0| 2f 2f 20 72 65 63 65 69 | 76 65 64 20 66 6c 6f 77 |// recei|ved flow|
|00004500| 20 63 6f 6e 74 72 6f 6c | 20 6d 65 73 73 61 67 65 | control| message|
|00004510| 20 6f 75 74 20 6f 66 20 | 6f 72 64 65 72 2c 20 72 | out of |order, r|
|00004520| 65 74 72 79 0d 09 09 09 | 09 66 63 52 65 71 75 65 |etry....|.fcReque|
|00004530| 73 74 44 65 6c 61 79 20 | 3d 20 41 64 64 41 62 73 |stDelay |= AddAbs|
|00004540| 6f 6c 75 74 65 54 6f 41 | 62 73 6f 6c 75 74 65 20 |oluteToA|bsolute |
|00004550| 28 55 70 54 69 6d 65 20 | 28 29 2c 20 44 75 72 61 |(UpTime |(), Dura|
|00004560| 74 69 6f 6e 54 6f 41 62 | 73 6f 6c 75 74 65 28 32 |tionToAb|solute(2|
|00004570| 30 29 29 3b 09 09 2f 2f | 20 32 30 20 6d 69 6c 6c |0));..//| 20 mill|
|00004580| 69 73 65 63 6f 6e 64 73 | 0d 09 09 09 09 73 74 61 |iseconds|.....sta|
|00004590| 74 75 73 20 3d 20 53 65 | 74 49 6e 74 65 72 72 75 |tus = Se|tInterru|
|000045a0| 70 74 54 69 6d 65 72 20 | 28 26 66 63 52 65 71 75 |ptTimer |(&fcRequ|
|000045b0| 65 73 74 44 65 6c 61 79 | 2c 09 09 09 09 09 09 09 |estDelay|,.......|
|000045c0| 09 09 2f 2f 20 4a 4b 4c | 20 2a 2a 2a 20 77 68 61 |..// JKL| *** wha|
|000045d0| 74 27 73 20 61 20 67 6f | 6f 64 20 64 65 6c 61 79 |t's a go|od delay|
|000045e0| 0d 09 09 09 09 09 09 09 | 09 09 09 09 52 65 74 72 |........|....Retr|
|000045f0| 79 46 6c 6f 77 43 6f 6e | 74 72 6f 6c 2c 0d 09 09 |yFlowCon|trol,...|
|00004600| 09 09 09 09 09 09 09 09 | 09 28 76 6f 69 64 20 2a |........|.(void *|
|00004610| 29 20 70 46 57 58 4e 6f | 64 65 44 61 74 61 2c 0d |) pFWXNo|deData,.|
|00004620| 09 09 09 09 09 09 09 09 | 09 09 09 26 70 46 57 58 |........|...&pFWX|
|00004630| 4e 6f 64 65 44 61 74 61 | 2d 3e 66 63 54 69 6d 65 |NodeData|->fcTime|
|00004640| 72 49 44 29 3b 0d 09 09 | 09 7d 0d 09 09 09 62 72 |rID);...|.}....br|
|00004650| 65 61 6b 3b 0d 09 09 0d | 09 09 63 61 73 65 20 6b |eak;....|..case k|
|00004660| 46 43 43 6f 6e 74 72 6f | 6c 52 65 70 6c 79 3a 0d |FCContro|lReply:.|
|00004670| 09 09 09 66 63 50 61 63 | 6b 65 74 43 6f 75 6e 74 |...fcPac|ketCount|
|00004680| 20 3d 20 28 28 55 49 6e | 74 33 32 20 2a 29 20 70 | = ((UIn|t32 *) p|
|00004690| 4d 65 73 73 61 67 65 29 | 5b 32 5d 3b 0d 09 09 09 |Message)|[2];....|
|000046a0| 43 61 6e 63 65 6c 54 69 | 6d 65 72 28 70 46 57 58 |CancelTi|mer(pFWX|
|000046b0| 4e 6f 64 65 44 61 74 61 | 2d 3e 66 63 54 69 6d 65 |NodeData|->fcTime|
|000046c0| 72 49 44 2c 20 26 66 63 | 52 65 71 75 65 73 74 44 |rID, &fc|RequestD|
|000046d0| 65 6c 61 79 29 3b 0d 09 | 09 09 69 66 20 28 66 63 |elay);..|..if (fc|
|000046e0| 50 61 63 6b 65 74 43 6f | 75 6e 74 20 3d 3d 20 70 |PacketCo|unt == p|
|000046f0| 46 57 58 4e 6f 64 65 44 | 61 74 61 2d 3e 66 63 49 |FWXNodeD|ata->fcI|
|00004700| 6e 64 65 78 29 0d 09 09 | 09 7b 0d 09 09 09 09 70 |ndex)...|.{.....p|
|00004710| 46 57 58 4e 6f 64 65 44 | 61 74 61 2d 3e 66 63 49 |FWXNodeD|ata->fcI|
|00004720| 6e 64 65 78 2b 2b 3b 0d | 09 09 09 09 70 46 57 58 |ndex++;.|....pFWX|
|00004730| 4e 6f 64 65 44 61 74 61 | 2d 3e 63 6f 6e 74 72 6f |NodeData|->contro|
|00004740| 6c 50 62 41 76 61 69 6c | 20 3d 20 28 28 53 49 6e |lPbAvail| = ((SIn|
|00004750| 74 33 32 20 2a 29 20 70 | 4d 65 73 73 61 67 65 29 |t32 *) p|Message)|
|00004760| 5b 31 5d 3b 0d 09 09 09 | 09 69 66 20 28 70 46 57 |[1];....|.if (pFW|
|00004770| 58 4e 6f 64 65 44 61 74 | 61 2d 3e 63 6f 6e 74 72 |XNodeDat|a->contr|
|00004780| 6f 6c 50 62 41 76 61 69 | 6c 20 3e 20 30 29 0d 09 |olPbAvai|l > 0)..|
|00004790| 09 09 09 7b 0d 09 09 09 | 09 09 69 66 20 28 70 46 |...{....|..if (pF|
|000047a0| 57 58 4e 6f 64 65 44 61 | 74 61 2d 3e 66 63 53 74 |WXNodeDa|ta->fcSt|
|000047b0| 6f 70 53 65 6e 64 29 0d | 09 09 09 09 09 7b 0d 09 |opSend).|.....{..|
|000047c0| 09 09 09 09 09 70 46 57 | 58 4e 6f 64 65 44 61 74 |.....pFW|XNodeDat|
|000047d0| 61 2d 3e 66 63 53 74 6f | 70 53 65 6e 64 20 3d 20 |a->fcSto|pSend = |
|000047e0| 66 61 6c 73 65 3b 0d 09 | 09 09 09 09 09 73 74 61 |false;..|.....sta|
|000047f0| 74 75 73 20 3d 20 53 65 | 6e 64 50 61 63 6b 65 74 |tus = Se|ndPacket|
|00004800| 28 70 46 57 58 4e 6f 64 | 65 44 61 74 61 29 3b 0d |(pFWXNod|eData);.|
|00004810| 09 09 09 09 09 7d 0d 09 | 09 09 09 7d 0d 09 09 09 |.....}..|...}....|
|00004820| 09 65 6c 73 65 0d 09 09 | 09 09 7b 0d 09 09 09 09 |.else...|..{.....|
|00004830| 09 2f 2f 20 73 74 69 6c | 6c 20 6e 6f 20 62 75 66 |.// stil|l no buf|
|00004840| 66 65 72 73 20 61 76 61 | 69 6c 61 62 6c 65 2c 20 |fers ava|ilable, |
|00004850| 72 65 73 65 74 20 74 69 | 6d 65 72 0d 09 09 09 09 |reset ti|mer.....|
|00004860| 09 66 63 52 65 71 75 65 | 73 74 44 65 6c 61 79 20 |.fcReque|stDelay |
|00004870| 3d 20 41 64 64 41 62 73 | 6f 6c 75 74 65 54 6f 41 |= AddAbs|oluteToA|
|00004880| 62 73 6f 6c 75 74 65 20 | 28 55 70 54 69 6d 65 20 |bsolute |(UpTime |
|00004890| 28 29 2c 20 44 75 72 61 | 74 69 6f 6e 54 6f 41 62 |(), Dura|tionToAb|
|000048a0| 73 6f 6c 75 74 65 28 32 | 30 29 29 3b 09 09 2f 2f |solute(2|0));..//|
|000048b0| 20 32 30 20 6d 69 6c 6c | 69 73 65 63 6f 6e 64 73 | 20 mill|iseconds|
|000048c0| 0d 09 09 09 09 09 73 74 | 61 74 75 73 20 3d 20 53 |......st|atus = S|
|000048d0| 65 74 49 6e 74 65 72 72 | 75 70 74 54 69 6d 65 72 |etInterr|uptTimer|
|000048e0| 20 28 26 66 63 52 65 71 | 75 65 73 74 44 65 6c 61 | (&fcReq|uestDela|
|000048f0| 79 2c 09 09 09 09 09 09 | 09 09 09 2f 2f 20 4a 4b |y,......|...// JK|
|00004900| 4c 20 2a 2a 2a 20 77 68 | 61 74 27 73 20 61 20 67 |L *** wh|at's a g|
|00004910| 6f 6f 64 20 64 65 6c 61 | 79 0d 09 09 09 09 09 09 |ood dela|y.......|
|00004920| 09 09 09 09 09 09 52 65 | 74 72 79 46 6c 6f 77 43 |......Re|tryFlowC|
|00004930| 6f 6e 74 72 6f 6c 2c 0d | 09 09 09 09 09 09 09 09 |ontrol,.|........|
|00004940| 09 09 09 09 28 76 6f 69 | 64 20 2a 29 20 70 46 57 |....(voi|d *) pFW|
|00004950| 58 4e 6f 64 65 44 61 74 | 61 2c 0d 09 09 09 09 09 |XNodeDat|a,......|
|00004960| 09 09 09 09 09 09 09 26 | 70 46 57 58 4e 6f 64 65 |.......&|pFWXNode|
|00004970| 44 61 74 61 2d 3e 66 63 | 54 69 6d 65 72 49 44 29 |Data->fc|TimerID)|
|00004980| 3b 0d 09 09 09 09 7d 0d | 09 09 09 7d 0d 09 09 09 |;.....}.|...}....|
|00004990| 65 6c 73 65 0d 09 09 09 | 7b 0d 09 09 09 09 66 63 |else....|{.....fc|
|000049a0| 52 65 71 75 65 73 74 44 | 65 6c 61 79 20 3d 20 41 |RequestD|elay = A|
|000049b0| 64 64 41 62 73 6f 6c 75 | 74 65 54 6f 41 62 73 6f |ddAbsolu|teToAbso|
|000049c0| 6c 75 74 65 20 28 55 70 | 54 69 6d 65 20 28 29 2c |lute (Up|Time (),|
|000049d0| 20 44 75 72 61 74 69 6f | 6e 54 6f 41 62 73 6f 6c | Duratio|nToAbsol|
|000049e0| 75 74 65 28 32 30 29 29 | 3b 09 09 2f 2f 20 31 30 |ute(20))|;..// 10|
|000049f0| 20 6d 69 6c 6c 69 73 65 | 63 6f 6e 64 73 0d 09 09 | millise|conds...|
|00004a00| 09 09 73 74 61 74 75 73 | 20 3d 20 53 65 74 49 6e |..status| = SetIn|
|00004a10| 74 65 72 72 75 70 74 54 | 69 6d 65 72 20 28 26 66 |terruptT|imer (&f|
|00004a20| 63 52 65 71 75 65 73 74 | 44 65 6c 61 79 2c 09 09 |cRequest|Delay,..|
|00004a30| 09 09 09 09 09 09 09 2f | 2f 20 4a 4b 4c 20 2a 2a |......./|/ JKL **|
|00004a40| 2a 20 77 68 61 74 27 73 | 20 61 20 67 6f 6f 64 20 |* what's| a good |
|00004a50| 64 65 6c 61 79 0d 09 09 | 09 09 09 09 09 09 09 09 |delay...|........|
|00004a60| 09 52 65 74 72 79 46 6c | 6f 77 43 6f 6e 74 72 6f |.RetryFl|owContro|
|00004a70| 6c 2c 0d 09 09 09 09 09 | 09 09 09 09 09 09 28 76 |l,......|......(v|
|00004a80| 6f 69 64 20 2a 29 20 70 | 46 57 58 4e 6f 64 65 44 |oid *) p|FWXNodeD|
|00004a90| 61 74 61 2c 0d 09 09 09 | 09 09 09 09 09 09 09 09 |ata,....|........|
|00004aa0| 26 70 46 57 58 4e 6f 64 | 65 44 61 74 61 2d 3e 66 |&pFWXNod|eData->f|
|00004ab0| 63 54 69 6d 65 72 49 44 | 29 3b 0d 09 09 09 7d 0d |cTimerID|);....}.|
|00004ac0| 09 09 09 62 72 65 61 6b | 3b 0d 09 09 0d 09 09 63 |...break|;......c|
|00004ad0| 61 73 65 20 6b 41 64 64 | 72 65 73 73 49 6e 66 6f |ase kAdd|ressInfo|
|00004ae0| 52 65 71 75 65 73 74 3a | 0d 09 09 09 69 66 20 28 |Request:|....if (|
|00004af0| 21 70 46 57 58 4e 6f 64 | 65 44 61 74 61 2d 3e 66 |!pFWXNod|eData->f|
|00004b00| 63 52 65 70 6c 79 43 6f | 6d 6d 61 6e 64 4f 62 6a |cReplyCo|mmandObj|
|00004b10| 65 63 74 49 6e 55 73 65 | 29 0d 09 09 09 7b 0d 09 |ectInUse|)....{..|
|00004b20| 09 09 70 46 57 58 4e 6f | 64 65 44 61 74 61 2d 3e |..pFWXNo|deData->|
|00004b30| 72 65 6d 6f 74 65 44 61 | 74 61 41 64 64 72 65 73 |remoteDa|taAddres|
|00004b40| 73 2e 61 64 64 72 65 73 | 73 48 69 20 3d 20 28 28 |s.addres|sHi = ((|
|00004b50| 55 49 6e 74 33 32 20 2a | 29 20 70 4d 65 73 73 61 |UInt32 *|) pMessa|
|00004b60| 67 65 29 5b 31 5d 3b 0d | 09 09 09 70 46 57 58 4e |ge)[1];.|...pFWXN|
|00004b70| 6f 64 65 44 61 74 61 2d | 3e 72 65 6d 6f 74 65 44 |odeData-|>remoteD|
|00004b80| 61 74 61 41 64 64 72 65 | 73 73 2e 61 64 64 72 65 |ataAddre|ss.addre|
|00004b90| 73 73 4c 6f 20 3d 20 28 | 28 55 49 6e 74 33 32 20 |ssLo = (|(UInt32 |
|00004ba0| 2a 29 20 70 4d 65 73 73 | 61 67 65 29 5b 32 5d 3b |*) pMess|age)[2];|
|00004bb0| 0d 09 09 09 70 46 57 58 | 4e 6f 64 65 44 61 74 61 |....pFWX|NodeData|
|00004bc0| 2d 3e 66 63 52 65 70 6c | 79 42 75 66 66 65 72 5b |->fcRepl|yBuffer[|
|00004bd0| 30 5d 20 3d 20 6b 41 64 | 64 72 65 73 73 49 6e 66 |0] = kAd|dressInf|
|00004be0| 6f 52 65 70 6c 79 3b 0d | 09 09 09 70 46 57 58 4e |oReply;.|...pFWXN|
|00004bf0| 6f 64 65 44 61 74 61 2d | 3e 66 63 52 65 70 6c 79 |odeData-|>fcReply|
|00004c00| 42 75 66 66 65 72 5b 31 | 5d 20 3d 20 70 46 57 58 |Buffer[1|] = pFWX|
|00004c10| 4e 6f 64 65 44 61 74 61 | 2d 3e 6c 6f 63 61 6c 44 |NodeData|->localD|
|00004c20| 61 74 61 41 64 64 72 65 | 73 73 2e 61 64 64 72 65 |ataAddre|ss.addre|
|00004c30| 73 73 48 69 3b 0d 09 09 | 09 70 46 57 58 4e 6f 64 |ssHi;...|.pFWXNod|
|00004c40| 65 44 61 74 61 2d 3e 66 | 63 52 65 70 6c 79 42 75 |eData->f|cReplyBu|
|00004c50| 66 66 65 72 5b 32 5d 20 | 3d 20 70 46 57 58 4e 6f |ffer[2] |= pFWXNo|
|00004c60| 64 65 44 61 74 61 2d 3e | 6c 6f 63 61 6c 44 61 74 |deData->|localDat|
|00004c70| 61 41 64 64 72 65 73 73 | 2e 61 64 64 72 65 73 73 |aAddress|.address|
|00004c80| 4c 6f 3b 0d 09 09 09 70 | 46 57 58 4e 6f 64 65 44 |Lo;....p|FWXNodeD|
|00004c90| 61 74 61 2d 3e 66 63 52 | 65 70 6c 79 43 6f 6d 6d |ata->fcR|eplyComm|
|00004ca0| 61 6e 64 4f 62 6a 65 63 | 74 49 6e 55 73 65 20 3d |andObjec|tInUse =|
|00004cb0| 20 74 72 75 65 3b 0d 09 | 09 09 46 57 53 65 74 46 | true;..|..FWSetF|
|00004cc0| 57 43 6f 6d 6d 61 6e 64 | 43 6f 6d 70 6c 65 74 69 |WCommand|Completi|
|00004cd0| 6f 6e 50 72 6f 63 44 61 | 74 61 20 28 70 46 57 58 |onProcDa|ta (pFWX|
|00004ce0| 4e 6f 64 65 44 61 74 61 | 2d 3e 66 63 52 65 70 6c |NodeData|->fcRepl|
|00004cf0| 79 43 6f 6d 6d 61 6e 64 | 4f 62 6a 65 63 74 49 44 |yCommand|ObjectID|
|00004d00| 2c 20 28 55 49 6e 74 33 | 32 29 20 70 46 57 58 4e |, (UInt3|2) pFWXN|
|00004d10| 6f 64 65 44 61 74 61 29 | 3b 0d 09 09 09 46 57 53 |odeData)|;....FWS|
|00004d20| 65 74 43 6f 6d 6d 6f 6e | 41 73 79 6e 63 68 43 6f |etCommon|AsynchCo|
|00004d30| 6d 6d 61 6e 64 50 61 72 | 61 6d 73 20 28 70 46 57 |mmandPar|ams (pFW|
|00004d40| 58 4e 6f 64 65 44 61 74 | 61 2d 3e 66 63 52 65 70 |XNodeDat|a->fcRep|
|00004d50| 6c 79 43 6f 6d 6d 61 6e | 64 4f 62 6a 65 63 74 49 |lyComman|dObjectI|
|00004d60| 44 2c 0d 09 09 09 09 09 | 09 09 09 09 09 09 70 46 |D,......|......pF|
|00004d70| 57 58 4e 6f 64 65 44 61 | 74 61 2d 3e 66 77 78 55 |WXNodeDa|ta->fwxU|
|00004d80| 6e 69 74 49 6e 66 6f 2e | 66 63 41 64 64 72 65 73 |nitInfo.|fcAddres|
|00004d90| 73 2e 61 64 64 72 65 73 | 73 48 69 2c 0d 09 09 09 |s.addres|sHi,....|
|00004da0| 09 09 09 09 09 09 09 09 | 70 46 57 58 4e 6f 64 65 |........|pFWXNode|
|00004db0| 44 61 74 61 2d 3e 66 77 | 78 55 6e 69 74 49 6e 66 |Data->fw|xUnitInf|
|00004dc0| 6f 2e 66 63 41 64 64 72 | 65 73 73 2e 61 64 64 72 |o.fcAddr|ess.addr|
|00004dd0| 65 73 73 4c 6f 2c 0d 09 | 09 09 09 09 09 09 09 09 |essLo,..|........|
|00004de0| 09 09 28 50 74 72 29 20 | 70 46 57 58 4e 6f 64 65 |..(Ptr) |pFWXNode|
|00004df0| 44 61 74 61 2d 3e 66 63 | 52 65 70 6c 79 42 75 66 |Data->fc|ReplyBuf|
|00004e00| 66 65 72 2c 0d 09 09 09 | 09 09 09 09 09 09 09 09 |fer,....|........|
|00004e10| 6b 46 6c 6f 77 43 6f 6e | 74 72 6f 6c 53 69 7a 65 |kFlowCon|trolSize|
|00004e20| 29 3b 0d 09 09 09 73 74 | 61 74 75 73 20 3d 20 46 |);....st|atus = F|
|00004e30| 57 57 72 69 74 65 28 70 | 46 57 58 4e 6f 64 65 44 |WWrite(p|FWXNodeD|
|00004e40| 61 74 61 2d 3e 66 63 52 | 65 70 6c 79 43 6f 6d 6d |ata->fcR|eplyComm|
|00004e50| 61 6e 64 4f 62 6a 65 63 | 74 49 44 29 3b 0d 09 09 |andObjec|tID);...|
|00004e60| 09 09 69 66 20 28 73 74 | 61 74 75 73 20 21 3d 20 |..if (st|atus != |
|00004e70| 6e 6f 45 72 72 29 0d 09 | 09 09 09 09 70 46 57 58 |noErr)..|....pFWX|
|00004e80| 4e 6f 64 65 44 61 74 61 | 2d 3e 66 63 52 65 70 6c |NodeData|->fcRepl|
|00004e90| 79 43 6f 6d 6d 61 6e 64 | 4f 62 6a 65 63 74 49 6e |yCommand|ObjectIn|
|00004ea0| 55 73 65 20 3d 20 66 61 | 6c 73 65 3b 09 09 09 09 |Use = fa|lse;....|
|00004eb0| 09 0d 09 09 09 7d 0d 09 | 09 09 65 6c 73 65 0d 09 |.....}..|..else..|
|00004ec0| 09 09 7b 0d 09 09 09 09 | 46 57 44 65 62 75 67 53 |..{.....|FWDebugS|
|00004ed0| 74 72 28 22 5c 70 61 64 | 64 72 65 73 73 20 69 6e |tr("\pad|dress in|
|00004ee0| 66 6f 20 72 65 71 75 65 | 73 74 2c 20 6f 62 6a 65 |fo reque|st, obje|
|00004ef0| 63 74 20 69 6e 20 75 73 | 65 22 29 3b 0d 09 09 09 |ct in us|e");....|
|00004f00| 7d 0d 09 09 09 62 72 65 | 61 6b 3b 0d 09 09 09 0d |}....bre|ak;.....|
|00004f10| 09 09 63 61 73 65 20 6b | 41 64 64 72 65 73 73 49 |..case k|AddressI|
|00004f20| 6e 66 6f 52 65 70 6c 79 | 3a 0d 09 09 09 70 46 57 |nfoReply|:....pFW|
|00004f30| 58 4e 6f 64 65 44 61 74 | 61 2d 3e 72 65 6d 6f 74 |XNodeDat|a->remot|
|00004f40| 65 44 61 74 61 41 64 64 | 72 65 73 73 2e 61 64 64 |eDataAdd|ress.add|
|00004f50| 72 65 73 73 48 69 20 3d | 20 28 28 55 49 6e 74 33 |ressHi =| ((UInt3|
|00004f60| 32 20 2a 29 20 70 4d 65 | 73 73 61 67 65 29 5b 31 |2 *) pMe|ssage)[1|
|00004f70| 5d 3b 0d 09 09 09 70 46 | 57 58 4e 6f 64 65 44 61 |];....pF|WXNodeDa|
|00004f80| 74 61 2d 3e 72 65 6d 6f | 74 65 44 61 74 61 41 64 |ta->remo|teDataAd|
|00004f90| 64 72 65 73 73 2e 61 64 | 64 72 65 73 73 4c 6f 20 |dress.ad|dressLo |
|00004fa0| 3d 20 28 28 55 49 6e 74 | 33 32 20 2a 29 20 70 4d |= ((UInt|32 *) pM|
|00004fb0| 65 73 73 61 67 65 29 5b | 32 5d 3b 0d 09 09 09 62 |essage)[|2];....b|
|00004fc0| 72 65 61 6b 3b 0d 09 09 | 09 0d 09 09 64 65 66 61 |reak;...|....defa|
|00004fd0| 75 6c 74 3a 0d 09 09 09 | 73 70 72 69 6e 74 66 28 |ult:....|sprintf(|
|00004fe0| 64 65 62 75 67 53 74 72 | 2c 22 66 63 4e 6f 74 69 |debugStr|,"fcNoti|
|00004ff0| 66 79 2c 20 6d 65 73 73 | 61 67 65 20 74 79 70 65 |fy, mess|age type|
|00005000| 20 75 6e 6b 6e 6f 77 6e | 3a 20 25 64 22 2c 20 6d | unknown|: %d", m|
|00005010| 65 73 73 61 67 65 54 79 | 70 65 29 3b 0d 09 09 09 |essageTy|pe);....|
|00005020| 46 57 44 65 62 75 67 53 | 74 72 28 28 43 6f 6e 73 |FWDebugS|tr((Cons|
|00005030| 74 53 74 72 32 35 35 50 | 61 72 61 6d 29 20 63 32 |tStr255P|aram) c2|
|00005040| 70 73 74 72 28 64 65 62 | 75 67 53 74 72 29 29 3b |pstr(deb|ugStr));|
|00005050| 0d 09 09 09 62 72 65 61 | 6b 3b 0d 09 7d 0d 09 09 |....brea|k;..}...|
|00005060| 0d 09 69 66 20 28 73 74 | 61 74 75 73 20 21 3d 20 |..if (st|atus != |
|00005070| 6e 6f 45 72 72 29 0d 09 | 7b 0d 09 09 73 70 72 69 |noErr)..|{...spri|
|00005080| 6e 74 66 28 64 65 62 75 | 67 53 74 72 2c 22 66 63 |ntf(debu|gStr,"fc|
|00005090| 4e 6f 74 69 66 79 2c 20 | 65 72 72 6f 72 20 69 6e |Notify, |error in|
|000050a0| 20 46 57 57 72 69 74 65 | 3a 20 25 64 22 2c 20 73 | FWWrite|: %d", s|
|000050b0| 74 61 74 75 73 29 3b 0d | 09 09 46 57 44 65 62 75 |tatus);.|..FWDebu|
|000050c0| 67 53 74 72 28 28 43 6f | 6e 73 74 53 74 72 32 35 |gStr((Co|nstStr25|
|000050d0| 35 50 61 72 61 6d 29 20 | 63 32 70 73 74 72 28 64 |5Param) |c2pstr(d|
|000050e0| 65 62 75 67 53 74 72 29 | 29 3b 0d 09 7d 0d 7d 0d |ebugStr)|);..}.}.|
|000050f0| 0d 2f 2f 2f 2f 2f 2f 2f | 2f 2f 2f 2f 2f 2f 2f 2f |.///////|////////|
|00005100| 2f 2f 2f 2f 2f 2f 2f 2f | 2f 2f 2f 2f 2f 2f 2f 2f |////////|////////|
|00005110| 2f 2f 2f 2f 2f 2f 2f 2f | 2f 2f 2f 2f 2f 2f 2f 2f |////////|////////|
|00005120| 2f 2f 2f 2f 2f 2f 2f 2f | 2f 2f 2f 2f 2f 2f 2f 2f |////////|////////|
|00005130| 2f 2f 2f 2f 2f 2f 2f 2f | 2f 2f 2f 2f 2f 2f 2f 2f |////////|////////|
|00005140| 2f 0d 2f 2f 0d 2f 2f 20 | 48 61 6e 64 6c 65 43 6f |/.//.// |HandleCo|
|00005150| 6e 74 72 6f 6c 4e 6f 74 | 69 66 79 0d 2f 2f 0d 2f |ntrolNot|ify.//./|
|00005160| 2f 09 48 61 6e 64 6c 65 | 20 6e 6f 74 69 66 69 63 |/.Handle| notific|
|00005170| 61 74 69 6f 6e 20 6f 66 | 20 61 20 63 6f 6e 74 72 |ation of| a contr|
|00005180| 6f 6c 20 6d 65 73 73 61 | 67 65 20 72 65 63 65 69 |ol messa|ge recei|
|00005190| 76 65 64 2e 20 49 66 20 | 74 68 65 20 6d 65 73 73 |ved. If |the mess|
|000051a0| 61 67 65 20 69 73 20 64 | 61 74 61 0d 2f 2f 09 64 |age is d|ata.//.d|
|000051b0| 6f 6e 65 2c 20 63 6f 6d | 70 6c 65 74 65 20 74 68 |one, com|plete th|
|000051c0| 65 20 64 61 74 61 20 72 | 65 71 75 65 73 74 2c 20 |e data r|equest, |
|000051d0| 65 6c 73 65 20 63 6f 6d | 70 6c 65 74 65 20 74 68 |else com|plete th|
|000051e0| 65 20 63 6f 6e 74 72 6f | 6c 20 72 65 71 75 65 73 |e contro|l reques|
|000051f0| 74 2e 0d 2f 2f 0d 0d 73 | 74 61 74 69 63 20 76 6f |t..//..s|tatic vo|
|00005200| 69 64 20 48 61 6e 64 6c | 65 43 6f 6e 74 72 6f 6c |id Handl|eControl|
|00005210| 4e 6f 74 69 66 79 20 28 | 0d 09 46 57 58 4e 6f 64 |Notify (|..FWXNod|
|00005220| 65 44 61 74 61 50 74 72 | 09 09 09 09 70 46 57 58 |eDataPtr|....pFWX|
|00005230| 4e 6f 64 65 44 61 74 61 | 2c 0d 09 50 74 72 09 09 |NodeData|,..Ptr..|
|00005240| 09 09 09 09 09 70 4d 65 | 73 73 61 67 65 2c 0d 09 |.....pMe|ssage,..|
|00005250| 55 49 6e 74 33 32 09 09 | 09 09 09 09 6d 73 67 4c |UInt32..|....msgL|
|00005260| 65 6e 67 74 68 29 0d 7b | 0d 09 49 4f 50 61 72 61 |ength).{|..IOPara|
|00005270| 6d 50 74 72 09 09 09 09 | 09 70 62 3b 0d 09 55 49 |mPtr....|.pb;..UI|
|00005280| 6e 74 33 32 09 09 09 09 | 09 09 70 61 63 6b 65 74 |nt32....|..packet|
|00005290| 54 79 70 65 3b 0d 09 55 | 49 6e 74 33 32 09 09 09 |Type;..U|Int32...|
|000052a0| 09 09 09 70 61 63 6b 65 | 74 49 6e 64 65 78 3b 0d |...packe|tIndex;.|
|000052b0| 09 4f 53 53 74 61 74 75 | 73 09 09 09 09 09 73 74 |.OSStatu|s.....st|
|000052c0| 61 74 75 73 20 3d 20 6e | 6f 45 72 72 3b 0d 0d 09 |atus = n|oErr;...|
|000052d0| 0d 09 70 61 63 6b 65 74 | 49 6e 64 65 78 20 3d 20 |..packet|Index = |
|000052e0| 28 28 55 49 6e 74 33 32 | 20 2a 29 20 70 4d 65 73 |((UInt32| *) pMes|
|000052f0| 73 61 67 65 29 5b 30 5d | 3b 0d 09 69 66 20 28 28 |sage)[0]|;..if ((|
|00005300| 70 61 63 6b 65 74 49 6e | 64 65 78 20 3e 20 70 46 |packetIn|dex > pF|
|00005310| 57 58 4e 6f 64 65 44 61 | 74 61 2d 3e 6c 61 73 74 |WXNodeDa|ta->last|
|00005320| 49 6e 64 65 78 29 20 7c | 7c 20 28 70 61 63 6b 65 |Index) ||| (packe|
|00005330| 74 49 6e 64 65 78 20 3d | 3d 20 31 29 29 09 2f 2f |tIndex =|= 1)).//|
|00005340| 20 77 69 6c 6c 20 62 65 | 20 6f 6e 65 20 69 66 20 | will be| one if |
|00005350| 66 77 69 78 20 69 73 20 | 63 6c 6f 73 65 64 0d 09 |fwix is |closed..|
|00005360| 7b 09 09 09 09 09 09 09 | 09 09 09 09 09 09 09 09 |{.......|........|
|00005370| 09 09 2f 2f 20 61 6e 64 | 20 6f 70 65 6e 65 64 20 |..// and| opened |
|00005380| 6f 6e 20 6f 74 68 65 72 | 20 6d 61 63 68 69 6e 65 |on other| machine|
|00005390| 0d 09 09 70 46 57 58 4e | 6f 64 65 44 61 74 61 2d |...pFWXN|odeData-|
|000053a0| 3e 6c 61 73 74 49 6e 64 | 65 78 20 3d 20 70 61 63 |>lastInd|ex = pac|
|000053b0| 6b 65 74 49 6e 64 65 78 | 3b 0d 09 09 70 61 63 6b |ketIndex|;...pack|
|000053c0| 65 74 54 79 70 65 20 3d | 20 28 28 55 49 6e 74 33 |etType =| ((UInt3|
|000053d0| 32 20 2a 29 20 70 4d 65 | 73 73 61 67 65 29 5b 31 |2 *) pMe|ssage)[1|
|000053e0| 5d 3b 0d 09 0d 09 09 69 | 66 20 28 70 61 63 6b 65 |];.....i|f (packe|
|000053f0| 74 54 79 70 65 20 3d 3d | 20 6b 44 61 74 61 44 6f |tType ==| kDataDo|
|00005400| 6e 65 29 0d 09 09 7b 0d | 09 09 09 09 48 61 6e 64 |ne)...{.|....Hand|
|00005410| 6c 65 44 61 74 61 44 6f | 6e 65 28 70 46 57 58 4e |leDataDo|ne(pFWXN|
|00005420| 6f 64 65 44 61 74 61 2c | 20 28 28 55 49 6e 74 33 |odeData,| ((UInt3|
|00005430| 32 20 2a 29 20 70 4d 65 | 73 73 61 67 65 29 5b 32 |2 *) pMe|ssage)[2|
|00005440| 5d 2c 20 28 28 55 49 6e | 74 33 32 20 2a 29 20 70 |], ((UIn|t32 *) p|
|00005450| 4d 65 73 73 61 67 65 29 | 5b 33 5d 29 3b 0d 09 09 |Message)|[3]);...|
|00005460| 7d 0d 09 09 65 6c 73 65 | 0d 09 09 7b 09 09 0d 09 |}...else|...{....|
|00005470| 09 09 2f 2f 20 68 61 6e | 64 6c 65 20 63 6f 6e 74 |..// han|dle cont|
|00005480| 72 6f 6c 20 70 61 63 6b | 65 74 0d 09 09 09 70 62 |rol pack|et....pb|
|00005490| 20 3d 20 28 49 4f 50 61 | 72 61 6d 50 74 72 29 20 | = (IOPa|ramPtr) |
|000054a0| 70 46 57 58 4e 6f 64 65 | 44 61 74 61 2d 3e 70 52 |pFWXNode|Data->pR|
|000054b0| 65 61 64 43 6f 6e 74 72 | 6f 6c 51 48 64 72 2d 3e |eadContr|olQHdr->|
|000054c0| 71 48 65 61 64 3b 0d 09 | 09 09 69 66 20 28 70 62 |qHead;..|..if (pb|
|000054d0| 20 21 3d 20 6e 69 6c 29 | 0d 09 09 09 7b 0d 09 09 | != nil)|....{...|
|000054e0| 09 09 70 46 57 58 4e 6f | 64 65 44 61 74 61 2d 3e |..pFWXNo|deData->|
|000054f0| 63 6f 6e 74 72 6f 6c 50 | 62 43 6f 75 6e 74 2d 2d |controlP|bCount--|
|00005500| 3b 0d 09 09 09 09 69 66 | 20 28 70 46 57 58 4e 6f |;.....if| (pFWXNo|
|00005510| 64 65 44 61 74 61 2d 3e | 63 6f 6e 74 72 6f 6c 50 |deData->|controlP|
|00005520| 62 43 6f 75 6e 74 20 3c | 20 30 29 0d 09 09 09 09 |bCount <| 0).....|
|00005530| 09 46 57 44 65 62 75 67 | 53 74 72 28 22 5c 70 63 |.FWDebug|Str("\pc|
|00005540| 6f 6e 74 72 6f 6c 20 62 | 75 66 66 65 72 20 63 6f |ontrol b|uffer co|
|00005550| 75 6e 74 20 3c 20 30 2c | 20 43 6f 6e 74 72 6f 6c |unt < 0,| Control|
|00005560| 4e 6f 74 69 66 79 22 29 | 3b 0d 09 09 09 09 50 42 |Notify")|;.....PB|
|00005570| 44 65 71 75 65 75 65 46 | 69 72 73 74 28 70 46 57 |DequeueF|irst(pFW|
|00005580| 58 4e 6f 64 65 44 61 74 | 61 2d 3e 70 52 65 61 64 |XNodeDat|a->pRead|
|00005590| 43 6f 6e 74 72 6f 6c 51 | 48 64 72 2c 20 28 51 45 |ControlQ|Hdr, (QE|
|000055a0| 6c 65 6d 50 74 72 20 2a | 29 20 26 70 62 29 3b 0d |lemPtr *|) &pb);.|
|000055b0| 09 09 09 09 42 6c 6f 63 | 6b 4d 6f 76 65 44 61 74 |....Bloc|kMoveDat|
|000055c0| 61 28 70 4d 65 73 73 61 | 67 65 2c 20 70 62 2d 3e |a(pMessa|ge, pb->|
|000055d0| 69 6f 42 75 66 66 65 72 | 2c 20 6d 73 67 4c 65 6e |ioBuffer|, msgLen|
|000055e0| 67 74 68 29 3b 0d 09 09 | 09 09 70 62 2d 3e 69 6f |gth);...|..pb->io|
|000055f0| 41 63 74 43 6f 75 6e 74 | 20 3d 20 6d 73 67 4c 65 |ActCount| = msgLe|
|00005600| 6e 67 74 68 3b 0d 09 09 | 09 09 70 62 2d 3e 69 6f |ngth;...|..pb->io|
|00005610| 4d 69 73 63 20 3d 20 28 | 50 74 72 29 20 70 61 63 |Misc = (|Ptr) pac|
|00005620| 6b 65 74 54 79 70 65 3b | 0d 09 09 09 09 46 57 58 |ketType;|.....FWX|
|00005630| 43 6f 6d 6d 61 6e 64 49 | 73 43 6f 6d 70 6c 65 74 |CommandI|sComplet|
|00005640| 65 28 70 62 2c 20 73 74 | 61 74 75 73 29 3b 0d 09 |e(pb, st|atus);..|
|00005650| 09 09 7d 0d 09 09 09 65 | 6c 73 65 0d 09 09 09 7b |..}....e|lse....{|
|00005660| 0d 09 09 09 09 46 57 44 | 65 62 75 67 53 74 72 28 |.....FWD|ebugStr(|
|00005670| 22 5c 70 4e 6f 20 72 65 | 63 65 69 76 65 20 63 6f |"\pNo re|ceive co|
|00005680| 6e 74 72 6f 6c 20 62 75 | 66 66 65 72 2c 20 57 72 |ntrol bu|ffer, Wr|
|00005690| 69 74 65 4e 6f 74 69 66 | 79 22 29 3b 0d 09 09 09 |iteNotif|y");....|
|000056a0| 7d 0d 09 09 7d 0d 09 7d | 0d 09 65 6c 73 65 0d 09 |}...}..}|..else..|
|000056b0| 7b 0d 09 09 73 70 72 69 | 6e 74 66 28 64 65 62 75 |{...spri|ntf(debu|
|000056c0| 67 53 74 72 2c 22 65 63 | 68 6f 20 70 61 63 6b 65 |gStr,"ec|ho packe|
|000056d0| 74 2c 20 6c 61 73 74 3a | 20 25 6c 64 2c 20 72 65 |t, last:| %ld, re|
|000056e0| 63 65 69 76 65 64 3a 20 | 25 6c 64 22 2c 20 70 46 |ceived: |%ld", pF|
|000056f0| 57 58 4e 6f 64 65 44 61 | 74 61 2d 3e 6c 61 73 74 |WXNodeDa|ta->last|
|00005700| 49 6e 64 65 78 2c 20 70 | 61 63 6b 65 74 49 6e 64 |Index, p|acketInd|
|00005710| 65 78 29 3b 0d 09 09 46 | 57 44 65 62 75 67 53 74 |ex);...F|WDebugSt|
|00005720| 72 28 28 43 6f 6e 73 74 | 53 74 72 32 35 35 50 61 |r((Const|Str255Pa|
|00005730| 72 61 6d 29 20 63 32 70 | 73 74 72 28 64 65 62 75 |ram) c2p|str(debu|
|00005740| 67 53 74 72 29 29 3b 0d | 09 7d 0d 7d 0d 09 0d 2f |gStr));.|.}.}.../|
|00005750| 2f 2f 2f 2f 2f 2f 2f 2f | 2f 2f 2f 2f 2f 2f 2f 2f |////////|////////|
|00005760| 2f 2f 2f 2f 2f 2f 2f 2f | 2f 2f 2f 2f 2f 2f 2f 2f |////////|////////|
|00005770| 2f 2f 2f 2f 2f 2f 2f 2f | 2f 2f 2f 2f 2f 2f 2f 2f |////////|////////|
|00005780| 2f 2f 2f 2f 2f 2f 2f 2f | 2f 2f 2f 2f 2f 2f 2f 2f |////////|////////|
|00005790| 2f 2f 2f 2f 2f 2f 2f 2f | 2f 2f 2f 2f 2f 2f 2f 0d |////////|///////.|
|000057a0| 2f 2f 0d 2f 2f 20 48 61 | 6e 64 6c 65 44 61 74 61 |//.// Ha|ndleData|
|000057b0| 44 6f 6e 65 0d 2f 2f 0d | 2f 2f 09 48 61 6e 64 6c |Done.//.|//.Handl|
|000057c0| 65 20 6e 6f 74 69 66 69 | 63 61 74 69 6f 6e 20 6f |e notifi|cation o|
|000057d0| 66 20 61 20 64 61 74 61 | 20 64 6f 6e 65 20 6d 65 |f a data| done me|
|000057e0| 73 73 61 67 65 2e 20 49 | 66 20 74 68 65 20 64 61 |ssage. I|f the da|
|000057f0| 74 61 20 63 6f 6d 70 6c | 65 74 65 73 20 74 68 65 |ta compl|etes the|
|00005800| 0d 2f 2f 09 72 65 71 75 | 65 73 74 2c 20 73 65 6e |.//.requ|est, sen|
|00005810| 64 20 74 68 65 20 70 61 | 63 6b 65 74 20 74 6f 20 |d the pa|cket to |
|00005820| 74 68 65 20 61 70 70 2e | 20 49 66 20 74 68 65 20 |the app.| If the |
|00005830| 64 61 74 61 20 6f 76 65 | 72 66 6c 6f 77 73 20 74 |data ove|rflows t|
|00005840| 68 65 20 72 65 71 75 65 | 73 74 2c 20 73 65 6e 64 |he reque|st, send|
|00005850| 0d 2f 2f 09 74 68 65 20 | 63 75 72 72 65 6e 74 20 |.//.the |current |
|00005860| 70 61 63 6b 65 74 20 74 | 6f 20 74 68 65 20 61 70 |packet t|o the ap|
|00005870| 70 20 61 6e 64 20 73 74 | 61 72 74 20 61 20 6e 65 |p and st|art a ne|
|00005880| 77 20 6f 6e 65 2e 20 4f | 74 68 65 72 77 69 73 65 |w one. O|therwise|
|00005890| 20 6a 75 73 74 20 63 6f | 70 79 20 74 68 65 20 64 | just co|py the d|
|000058a0| 61 74 61 0d 2f 2f 09 69 | 6e 74 6f 20 74 68 65 20 |ata.//.i|nto the |
|000058b0| 63 75 72 72 65 6e 74 20 | 70 61 63 6b 65 74 2e 0d |current |packet..|
|000058c0| 2f 2f 0d 0d 73 74 61 74 | 69 63 20 76 6f 69 64 20 |//..stat|ic void |
|000058d0| 48 61 6e 64 6c 65 44 61 | 74 61 44 6f 6e 65 20 28 |HandleDa|taDone (|
|000058e0| 0d 09 46 57 58 4e 6f 64 | 65 44 61 74 61 50 74 72 |..FWXNod|eDataPtr|
|000058f0| 09 09 09 09 70 46 57 58 | 4e 6f 64 65 44 61 74 61 |....pFWX|NodeData|
|00005900| 2c 0d 09 55 49 6e 74 33 | 32 09 09 09 09 09 09 63 |,..UInt3|2......c|
|00005910| 6f 75 6e 74 2c 0d 09 55 | 49 6e 74 33 32 09 09 09 |ount,..U|Int32...|
|00005920| 09 09 09 63 68 65 63 6b | 53 75 6d 29 0d 7b 0d 09 |...check|Sum).{..|
|00005930| 49 4f 50 61 72 61 6d 50 | 74 72 09 09 09 09 09 70 |IOParamP|tr.....p|
|00005940| 62 3b 0d 09 55 49 6e 74 | 33 32 09 09 09 09 09 09 |b;..UInt|32......|
|00005950| 62 79 74 65 43 6f 75 6e | 74 3b 0d 09 55 49 6e 74 |byteCoun|t;..UInt|
|00005960| 33 32 09 09 09 09 09 09 | 64 61 74 61 53 75 6d 3b |32......|dataSum;|
|00005970| 0d 09 4f 53 53 74 61 74 | 75 73 09 09 09 09 09 73 |..OSStat|us.....s|
|00005980| 74 61 74 75 73 20 3d 20 | 6e 6f 45 72 72 3b 0d 0d |tatus = |noErr;..|
|00005990| 09 70 62 20 3d 20 28 49 | 4f 50 61 72 61 6d 50 74 |.pb = (I|OParamPt|
|000059a0| 72 29 20 70 46 57 58 4e | 6f 64 65 44 61 74 61 2d |r) pFWXN|odeData-|
|000059b0| 3e 70 52 65 61 64 44 61 | 74 61 51 48 64 72 2d 3e |>pReadDa|taQHdr->|
|000059c0| 71 48 65 61 64 3b 09 0d | 09 69 66 20 28 70 62 20 |qHead;..|.if (pb |
|000059d0| 21 3d 20 6e 69 6c 29 0d | 09 7b 0d 09 09 64 61 74 |!= nil).|.{...dat|
|000059e0| 61 53 75 6d 20 3d 20 30 | 3b 0d 09 09 66 6f 72 20 |aSum = 0|;...for |
|000059f0| 28 62 79 74 65 43 6f 75 | 6e 74 20 3d 20 30 3b 20 |(byteCou|nt = 0; |
|00005a00| 62 79 74 65 43 6f 75 6e | 74 20 3c 20 63 6f 75 6e |byteCoun|t < coun|
|00005a10| 74 3b 20 2b 2b 62 79 74 | 65 43 6f 75 6e 74 29 0d |t; ++byt|eCount).|
|00005a20| 09 09 09 64 61 74 61 53 | 75 6d 20 2b 3d 20 28 70 |...dataS|um += (p|
|00005a30| 46 57 58 4e 6f 64 65 44 | 61 74 61 2d 3e 64 61 74 |FWXNodeD|ata->dat|
|00005a40| 61 42 75 66 66 65 72 29 | 5b 62 79 74 65 43 6f 75 |aBuffer)|[byteCou|
|00005a50| 6e 74 5d 3b 0d 09 09 0d | 09 09 69 66 20 28 64 61 |nt];....|..if (da|
|00005a60| 74 61 53 75 6d 20 21 3d | 20 63 68 65 63 6b 53 75 |taSum !=| checkSu|
|00005a70| 6d 29 0d 09 09 7b 0d 09 | 09 09 73 74 61 74 75 73 |m)...{..|..status|
|00005a80| 20 3d 20 62 61 64 43 6b | 73 6d 45 72 72 3b 0d 09 | = badCk|smErr;..|
|00005a90| 09 09 73 70 72 69 6e 74 | 66 28 64 65 62 75 67 53 |..sprint|f(debugS|
|00005aa0| 74 72 2c 22 43 68 65 63 | 6b 73 75 6d 20 65 72 72 |tr,"Chec|ksum err|
|00005ab0| 6f 72 2c 20 65 78 70 65 | 63 74 65 64 3a 20 25 6c |or, expe|cted: %l|
|00005ac0| 64 2c 20 72 65 63 65 69 | 76 65 64 3a 20 25 6c 64 |d, recei|ved: %ld|
|00005ad0| 22 2c 20 63 68 65 63 6b | 53 75 6d 2c 20 64 61 74 |", check|Sum, dat|
|00005ae0| 61 53 75 6d 29 3b 0d 09 | 09 09 46 57 44 65 62 75 |aSum);..|..FWDebu|
|00005af0| 67 53 74 72 28 28 43 6f | 6e 73 74 53 74 72 32 35 |gStr((Co|nstStr25|
|00005b00| 35 50 61 72 61 6d 29 20 | 63 32 70 73 74 72 28 64 |5Param) |c2pstr(d|
|00005b10| 65 62 75 67 53 74 72 29 | 29 3b 0d 09 09 7d 0d 09 |ebugStr)|);...}..|
|00005b20| 09 0d 09 09 42 6c 6f 63 | 6b 4d 6f 76 65 44 61 74 |....Bloc|kMoveDat|
|00005b30| 61 20 28 70 46 57 58 4e | 6f 64 65 44 61 74 61 2d |a (pFWXN|odeData-|
|00005b40| 3e 64 61 74 61 42 75 66 | 66 65 72 2c 0d 09 09 09 |>dataBuf|fer,....|
|00005b50| 09 09 20 20 20 70 62 2d | 3e 69 6f 42 75 66 66 65 |.. pb-|>ioBuffe|
|00005b60| 72 20 2b 20 70 62 2d 3e | 69 6f 41 63 74 43 6f 75 |r + pb->|ioActCou|
|00005b70| 6e 74 2c 0d 09 09 09 09 | 09 20 20 20 63 6f 75 6e |nt,.....|. coun|
|00005b80| 74 29 3b 0d 09 09 70 62 | 2d 3e 69 6f 41 63 74 43 |t);...pb|->ioActC|
|00005b90| 6f 75 6e 74 20 2b 3d 20 | 63 6f 75 6e 74 3b 0d 0d |ount += |count;..|
|00005ba0| 09 09 70 46 57 58 4e 6f | 64 65 44 61 74 61 2d 3e |..pFWXNo|deData->|
|00005bb0| 64 61 74 61 50 62 43 6f | 75 6e 74 2d 2d 3b 0d 09 |dataPbCo|unt--;..|
|00005bc0| 09 69 66 20 28 70 46 57 | 58 4e 6f 64 65 44 61 74 |.if (pFW|XNodeDat|
|00005bd0| 61 2d 3e 64 61 74 61 50 | 62 43 6f 75 6e 74 20 3c |a->dataP|bCount <|
|00005be0| 20 30 29 0d 09 09 09 46 | 57 44 65 62 75 67 53 74 | 0)....F|WDebugSt|
|00005bf0| 72 28 22 5c 70 64 61 74 | 61 50 62 43 6f 75 6e 74 |r("\pdat|aPbCount|
|00005c00| 20 3c 20 30 2c 20 64 61 | 74 61 20 64 6f 6e 65 22 | < 0, da|ta done"|
|00005c10| 29 3b 0d 0d 09 09 09 50 | 42 44 65 71 75 65 75 65 |);.....P|BDequeue|
|00005c20| 46 69 72 73 74 28 70 46 | 57 58 4e 6f 64 65 44 61 |First(pF|WXNodeDa|
|00005c30| 74 61 2d 3e 70 52 65 61 | 64 44 61 74 61 51 48 64 |ta->pRea|dDataQHd|
|00005c40| 72 2c 20 28 51 45 6c 65 | 6d 50 74 72 20 2a 29 20 |r, (QEle|mPtr *) |
|00005c50| 26 70 62 29 3b 0d 09 09 | 09 70 62 2d 3e 69 6f 4d |&pb);...|.pb->ioM|
|00005c60| 69 73 63 20 3d 20 28 50 | 74 72 29 20 6b 46 6f 72 |isc = (P|tr) kFor|
|00005c70| 6b 44 61 74 61 3b 0d 09 | 09 09 46 57 58 43 6f 6d |kData;..|..FWXCom|
|00005c80| 6d 61 6e 64 49 73 43 6f | 6d 70 6c 65 74 65 28 70 |mandIsCo|mplete(p|
|00005c90| 62 2c 20 73 74 61 74 75 | 73 29 3b 0d 09 09 7d 0d |b, statu|s);...}.|
|00005ca0| 09 65 6c 73 65 0d 09 09 | 46 57 44 65 62 75 67 53 |.else...|FWDebugS|
|00005cb0| 74 72 28 22 5c 70 4e 6f | 20 72 65 63 65 69 76 65 |tr("\pNo| receive|
|00005cc0| 20 62 75 66 66 65 72 20 | 66 6f 72 20 64 61 74 61 | buffer |for data|
|00005cd0| 2c 20 64 61 74 61 20 64 | 6f 6e 65 22 29 3b 0d 7d |, data d|one");.}|
|00005ce0| 0d 0d 0d 2f 2f 2f 2f 2f | 2f 2f 2f 2f 2f 2f 2f 2f |.../////|////////|
|00005cf0| 2f 2f 2f 2f 2f 2f 2f 2f | 2f 2f 2f 2f 2f 2f 2f 2f |////////|////////|
|00005d00| 2f 2f 2f 2f 2f 2f 2f 2f | 2f 2f 2f 2f 2f 2f 2f 2f |////////|////////|
|00005d10| 2f 2f 2f 2f 2f 2f 2f 2f | 2f 2f 2f 2f 2f 2f 2f 2f |////////|////////|
|00005d20| 2f 2f 2f 2f 2f 2f 2f 2f | 2f 2f 2f 2f 2f 2f 2f 2f |////////|////////|
|00005d30| 2f 2f 2f 0d 2f 2f 0d 2f | 2f 20 46 57 50 44 72 69 |///.//./|/ FWPDri|
|00005d40| 76 65 72 55 6e 69 74 41 | 64 64 65 64 0d 2f 2f 0d |verUnitA|dded.//.|
|00005d50| 2f 2f 20 20 20 46 69 72 | 65 57 69 72 65 20 70 72 |// Fir|eWire pr|
|00005d60| 6f 74 6f 63 6f 6c 20 64 | 72 69 76 65 72 20 69 6e |otocol d|river in|
|00005d70| 74 65 72 66 61 63 65 20 | 66 6f 72 20 68 61 6e 64 |terface |for hand|
|00005d80| 6c 69 6e 67 20 61 64 64 | 65 64 20 75 6e 69 74 73 |ling add|ed units|
|00005d90| 2e 0d 2f 2f 0d 0d 73 74 | 61 74 69 63 20 4f 53 53 |..//..st|atic OSS|
|00005da0| 74 61 74 75 73 09 46 57 | 50 44 72 69 76 65 72 55 |tatus.FW|PDriverU|
|00005db0| 6e 69 74 41 64 64 65 64 | 28 0d 09 46 57 50 44 72 |nitAdded|(..FWPDr|
|00005dc0| 69 76 65 72 49 44 09 09 | 09 09 09 66 77 50 44 72 |iverID..|...fwPDr|
|00005dd0| 69 76 65 72 49 44 2c 0d | 09 55 49 6e 74 33 32 09 |iverID,.|.UInt32.|
|00005de0| 09 09 09 09 09 66 77 50 | 44 72 69 76 65 72 53 70 |.....fwP|DriverSp|
|00005df0| 65 63 69 66 69 63 44 61 | 74 61 2c 0d 09 46 57 55 |ecificDa|ta,..FWU|
|00005e00| 6e 69 74 49 44 09 09 09 | 09 09 66 77 55 6e 69 74 |nitID...|..fwUnit|
|00005e10| 49 44 29 0d 7b 0d 09 46 | 57 58 44 72 69 76 65 72 |ID).{..F|WXDriver|
|00005e20| 44 61 74 61 50 74 72 09 | 09 09 70 46 57 58 44 72 |DataPtr.|..pFWXDr|
|00005e30| 69 76 65 72 44 61 74 61 | 3b 0d 09 4f 53 53 74 61 |iverData|;..OSSta|
|00005e40| 74 75 73 09 09 09 09 09 | 73 74 61 74 75 73 20 3d |tus.....|status =|
|00005e50| 20 6e 6f 45 72 72 3b 0d | 0d 09 2f 2f 20 47 65 74 | noErr;.|..// Get|
|00005e60| 20 6f 75 72 20 64 72 69 | 76 65 72 20 64 61 74 61 | our dri|ver data|
|00005e70| 2e 0d 09 70 46 57 58 44 | 72 69 76 65 72 44 61 74 |...pFWXD|riverDat|
|00005e80| 61 20 3d 20 28 46 57 58 | 44 72 69 76 65 72 44 61 |a = (FWX|DriverDa|
|00005e90| 74 61 50 74 72 29 20 66 | 77 50 44 72 69 76 65 72 |taPtr) f|wPDriver|
|00005ea0| 53 70 65 63 69 66 69 63 | 44 61 74 61 3b 0d 0d 09 |Specific|Data;...|
|00005eb0| 73 74 61 74 75 73 20 3d | 20 52 65 67 69 73 74 65 |status =| Registe|
|00005ec0| 72 46 57 58 4e 6f 64 65 | 20 28 70 46 57 58 44 72 |rFWXNode| (pFWXDr|
|00005ed0| 69 76 65 72 44 61 74 61 | 2d 3e 66 77 78 44 72 69 |iverData|->fwxDri|
|00005ee0| 76 65 72 49 44 2c 20 28 | 55 49 6e 74 33 32 29 20 |verID, (|UInt32) |
|00005ef0| 66 77 55 6e 69 74 49 44 | 29 3b 0d 0d 09 72 65 74 |fwUnitID|);...ret|
|00005f00| 75 72 6e 20 28 73 74 61 | 74 75 73 29 3b 0d 7d 0d |urn (sta|tus);.}.|
|00005f10| 0d 2f 2f 2f 2f 2f 2f 2f | 2f 2f 2f 2f 2f 2f 2f 2f |.///////|////////|
|00005f20| 2f 2f 2f 2f 2f 2f 2f 2f | 2f 2f 2f 2f 2f 2f 2f 2f |////////|////////|
|00005f30| 2f 2f 2f 2f 2f 2f 2f 2f | 2f 2f 2f 2f 2f 2f 2f 2f |////////|////////|
|00005f40| 2f 2f 2f 2f 2f 2f 2f 2f | 2f 2f 2f 2f 2f 2f 2f 2f |////////|////////|
|00005f50| 2f 2f 2f 2f 2f 2f 2f 2f | 2f 2f 2f 2f 2f 2f 2f 2f |////////|////////|
|00005f60| 2f 0d 2f 2f 0d 2f 2f 20 | 46 57 50 44 72 69 76 65 |/.//.// |FWPDrive|
|00005f70| 72 55 6e 69 74 52 65 6d | 6f 76 65 64 0d 2f 2f 0d |rUnitRem|oved.//.|
|00005f80| 2f 2f 20 20 20 46 69 72 | 65 57 69 72 65 20 70 72 |// Fir|eWire pr|
|00005f90| 6f 74 6f 63 6f 6c 20 64 | 72 69 76 65 72 20 69 6e |otocol d|river in|
|00005fa0| 74 65 72 66 61 63 65 20 | 66 6f 72 20 68 61 6e 64 |terface |for hand|
|00005fb0| 6c 69 6e 67 20 72 65 6d | 6f 76 65 64 20 75 6e 69 |ling rem|oved uni|
|00005fc0| 74 73 2e 0d 2f 2f 0d 0d | 73 74 61 74 69 63 20 4f |ts..//..|static O|
|00005fd0| 53 53 74 61 74 75 73 09 | 46 57 50 44 72 69 76 65 |SStatus.|FWPDrive|
|00005fe0| 72 55 6e 69 74 52 65 6d | 6f 76 65 64 28 0d 09 46 |rUnitRem|oved(..F|
|00005ff0| 57 50 44 72 69 76 65 72 | 49 44 09 09 09 09 09 66 |WPDriver|ID.....f|
|00006000| 77 50 44 72 69 76 65 72 | 49 44 2c 0d 09 55 49 6e |wPDriver|ID,..UIn|
|00006010| 74 33 32 09 09 09 09 09 | 09 66 77 50 44 72 69 76 |t32.....|.fwPDriv|
|00006020| 65 72 53 70 65 63 69 66 | 69 63 44 61 74 61 2c 0d |erSpecif|icData,.|
|00006030| 09 46 57 55 6e 69 74 49 | 44 09 09 09 09 09 66 77 |.FWUnitI|D.....fw|
|00006040| 55 6e 69 74 49 44 29 0d | 7b 0d 09 46 57 58 44 72 |UnitID).|{..FWXDr|
|00006050| 69 76 65 72 44 61 74 61 | 50 74 72 09 09 09 70 46 |iverData|Ptr...pF|
|00006060| 57 58 44 72 69 76 65 72 | 44 61 74 61 3b 0d 09 4f |WXDriver|Data;..O|
|00006070| 53 53 74 61 74 75 73 09 | 09 09 09 09 73 74 61 74 |SStatus.|....stat|
|00006080| 75 73 20 3d 20 6e 6f 45 | 72 72 3b 0d 0d 09 2f 2f |us = noE|rr;...//|
|00006090| 20 47 65 74 20 6f 75 72 | 20 64 72 69 76 65 72 20 | Get our| driver |
|000060a0| 64 61 74 61 2e 0d 09 70 | 46 57 58 44 72 69 76 65 |data...p|FWXDrive|
|000060b0| 72 44 61 74 61 20 3d 20 | 28 46 57 58 44 72 69 76 |rData = |(FWXDriv|
|000060c0| 65 72 44 61 74 61 50 74 | 72 29 20 66 77 50 44 72 |erDataPt|r) fwPDr|
|000060d0| 69 76 65 72 53 70 65 63 | 69 66 69 63 44 61 74 61 |iverSpec|ificData|
|000060e0| 3b 0d 0d 09 73 74 61 74 | 75 73 20 3d 20 55 6e 72 |;...stat|us = Unr|
|000060f0| 65 67 69 73 74 65 72 46 | 57 58 4e 6f 64 65 20 28 |egisterF|WXNode (|
|00006100| 70 46 57 58 44 72 69 76 | 65 72 44 61 74 61 2d 3e |pFWXDriv|erData->|
|00006110| 66 77 78 44 72 69 76 65 | 72 49 44 2c 20 28 55 49 |fwxDrive|rID, (UI|
|00006120| 6e 74 33 32 29 20 66 77 | 55 6e 69 74 49 44 29 3b |nt32) fw|UnitID);|
|00006130| 0d 0d 09 72 65 74 75 72 | 6e 20 28 73 74 61 74 75 |...retur|n (statu|
|00006140| 73 29 3b 0d 7d 0d 0d 0d | 2f 2f 2f 2f 2f 2f 2f 2f |s);.}...|////////|
|00006150| 2f 2f 2f 2f 2f 2f 2f 2f | 2f 2f 2f 2f 2f 2f 2f 2f |////////|////////|
|00006160| 2f 2f 2f 2f 2f 2f 2f 2f | 2f 2f 2f 2f 2f 2f 2f 2f |////////|////////|
|00006170| 2f 2f 2f 2f 2f 2f 2f 2f | 2f 2f 2f 2f 2f 2f 2f 2f |////////|////////|
|00006180| 2f 2f 2f 2f 2f 2f 2f 2f | 2f 2f 2f 2f 2f 2f 2f 2f |////////|////////|
|00006190| 2f 2f 2f 2f 2f 2f 2f 2f | 0d 2f 2f 0d 2f 2f 09 46 |////////|.//.//.F|
|000061a0| 6c 6f 77 43 6f 6e 74 72 | 6f 6c 43 6f 6d 70 6c 65 |lowContr|olComple|
|000061b0| 74 69 6f 6e 0d 2f 2f 0d | 2f 2f 09 43 6f 6d 70 6c |tion.//.|//.Compl|
|000061c0| 65 74 69 6f 6e 20 72 6f | 75 74 69 6e 65 20 66 6f |etion ro|utine fo|
|000061d0| 72 20 66 6c 6f 77 20 63 | 6f 6e 74 72 6f 6c 20 6d |r flow c|ontrol m|
|000061e0| 65 73 73 61 67 65 20 77 | 72 69 74 65 0d 2f 2f 0d |essage w|rite.//.|
|000061f0| 0d 73 74 61 74 69 63 20 | 76 6f 69 64 20 46 6c 6f |.static |void Flo|
|00006200| 77 43 6f 6e 74 72 6f 6c | 43 6f 6d 70 6c 65 74 65 |wControl|Complete|
|00006210| 28 0d 09 46 57 43 6f 6d | 6d 61 6e 64 4f 62 6a 65 |(..FWCom|mandObje|
|00006220| 63 74 49 44 09 09 09 66 | 77 43 6f 6d 6d 61 6e 64 |ctID...f|wCommand|
|00006230| 4f 62 6a 65 63 74 49 44 | 2c 0d 09 4f 53 53 74 61 |ObjectID|,..OSSta|
|00006240| 74 75 73 09 09 09 09 09 | 63 6f 6d 6d 61 6e 64 53 |tus.....|commandS|
|00006250| 74 61 74 75 73 2c 0d 09 | 55 49 6e 74 33 32 09 09 |tatus,..|UInt32..|
|00006260| 09 09 09 09 63 6f 6d 70 | 6c 65 74 69 6f 6e 50 72 |....comp|letionPr|
|00006270| 6f 63 44 61 74 61 29 0d | 7b 0d 09 46 57 58 4e 6f |ocData).|{..FWXNo|
|00006280| 64 65 44 61 74 61 50 74 | 72 09 09 09 70 46 57 58 |deDataPt|r...pFWX|
|00006290| 4e 6f 64 65 44 61 74 61 | 3b 0d 0d 09 70 46 57 58 |NodeData|;...pFWX|
|000062a0| 4e 6f 64 65 44 61 74 61 | 20 3d 20 28 46 57 58 4e |NodeData| = (FWXN|
|000062b0| 6f 64 65 44 61 74 61 50 | 74 72 29 20 63 6f 6d 70 |odeDataP|tr) comp|
|000062c0| 6c 65 74 69 6f 6e 50 72 | 6f 63 44 61 74 61 3b 0d |letionPr|ocData;.|
|000062d0| 09 70 46 57 58 4e 6f 64 | 65 44 61 74 61 2d 3e 66 |.pFWXNod|eData->f|
|000062e0| 63 53 65 6e 64 43 6f 6d | 6d 61 6e 64 4f 62 6a 65 |cSendCom|mandObje|
|000062f0| 63 74 49 6e 55 73 65 20 | 3d 20 66 61 6c 73 65 3b |ctInUse |= false;|
|00006300| 0d 09 69 66 20 28 63 6f | 6d 6d 61 6e 64 53 74 61 |..if (co|mmandSta|
|00006310| 74 75 73 20 21 3d 20 6e | 6f 45 72 72 29 0d 09 7b |tus != n|oErr)..{|
|00006320| 0d 09 09 69 66 20 28 28 | 63 6f 6d 6d 61 6e 64 53 |...if ((|commandS|
|00006330| 74 61 74 75 73 20 3d 3d | 20 74 69 6d 65 6f 75 74 |tatus ==| timeout|
|00006340| 45 72 72 29 20 7c 7c 0d | 09 09 09 28 63 6f 6d 6d |Err) ||.|...(comm|
|00006350| 61 6e 64 53 74 61 74 75 | 73 20 3d 3d 20 72 65 74 |andStatu|s == ret|
|00006360| 72 79 45 78 63 65 65 64 | 65 64 45 72 72 29 20 7c |ryExceed|edErr) ||
|00006370| 7c 0d 09 09 09 28 63 6f | 6d 6d 61 6e 64 53 74 61 ||....(co|mmandSta|
|00006380| 74 75 73 20 3d 3d 20 62 | 75 73 52 65 63 6f 6e 66 |tus == b|usReconf|
|00006390| 69 67 75 72 65 64 45 72 | 72 29 29 0d 09 09 7b 0d |iguredEr|r))...{.|
|000063a0| 09 09 09 70 46 57 58 4e | 6f 64 65 44 61 74 61 2d |...pFWXN|odeData-|
|000063b0| 3e 66 63 53 65 6e 64 43 | 6f 6d 6d 61 6e 64 4f 62 |>fcSendC|ommandOb|
|000063c0| 6a 65 63 74 49 6e 55 73 | 65 20 3d 20 74 72 75 65 |jectInUs|e = true|
|000063d0| 3b 0d 09 09 09 63 6f 6d | 6d 61 6e 64 53 74 61 74 |;....com|mandStat|
|000063e0| 75 73 20 3d 20 46 57 57 | 72 69 74 65 28 66 77 43 |us = FWW|rite(fwC|
|000063f0| 6f 6d 6d 61 6e 64 4f 62 | 6a 65 63 74 49 44 29 3b |ommandOb|jectID);|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.